您的位置:首页 > Web前端 > Node.js

nodejs express项目结构分析(windows)

2016-07-21 20:11 666 查看
一、结构图



1、node_modules文件夹

    这文件夹就是在创建完项目后,cd到项目目录执行npm
install后生成的文件夹,下载了项目需要的依赖项。

2、package.json文件

     此文件是项目的配置文件(可定义应用程序名,版本,依赖项等等)。node_modules文件夹下的依赖项是从哪里知道的呢?原因就是项目根目录下的这个package.json文件,执行npm
install时会去找此文件中的dependencies,并安装指定的依赖项。

3、public文件夹(包含images、javascripts、stylesheets)

 
    这个文件夹做过Web开发的应该一看就知道,为了存放图片、脚本、样式等文件的。

4、routes文件夹

 
    用于存放路由文件。

5、views文件夹

 
    存放视图。

二、项目内容介绍

1、app.set(name,value)

 
   把名字为name的项的值设为value,用于设置参数。

//设定端口


app.set(
'port'
, process.env.PORT || 3000);


//设定视图路径主要清楚__dirname的意思就可以了,它是node.js中的全局变量,表示取当前执行文件的路径     


app.set(
'views'
, path.join(__dirname, 
'views'
));   


//设定视图引擎模板,还可以设定其他模板,后续介绍


app.set(
'view engine'
'jade'
);


2、app.use([path],
function) 

      用这个方法来使用中间件,因为express依赖于connect,有大量的中间件,可以通过app.use来使用;path参数可以不填,默认为'/'  。

//这一句中可能要注意一下,express.static()是处理静态请求的,


//设置了public文件,public下所有文件都会以静态资料文件形式返回


//(如样式、脚本、图片素材等文件)


app.use(express.static(path.join(__dirname, 
'public'
))); 


 

 

//上面代码表示当用户使用/访问时,调用routes,即routes目录下的index.js文件,


//其中.js后缀省略,用/users访问时,调用routes目录下users.js文件


var
 
routes = require(
'./routes/index'
);


var
 
users = require(
'./routes/users'
);


app.use(
'/'
, routes);


app.use(
'/users'
, users);

3、app.get(name)

 
    获取名为name的项的值。

(app.get(
'env'
) === 
'development'
) {  


      
app.use(
function
(err, req, res, next) { 


          
res.status(err.status|| 500);       


           
res.render(
'error'
, {           


            
message: err.message,  


              
error: err        


            
});   


        
});


    
}


    
//表示如果是开发环境,处理error时会输出堆栈信息

4、路由文件index.js

var
 
express = require(
'express'
);


var
 
router = express.Router();


 

/* GET home page. */


router.get(
'/'
function
(req, res, next) {


  
res.render(
'index'
, { title: 
'Express'
 
});


});


 

module.exports = router;

     这段表示,router.get表示通过get请求/时,响应后面的function处理,两个参数分别是request、response;

es.render表示调用模版引擎解析名字index的模板,传并传入了title做为参数;
参考:http://my.oschina.net/u/1416844/blog/483040

给大家推荐一个nodejs学习网站:

http://blog.fens.me/series-nodejs/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息