NodeJS通过express框架搭建项目
主要内容如下:
- 加载exprss模块
- 创建app应用
- 加载模板处理
- 设置静态文件托管
- 加载数据库模块
- 处理post请求
- Cookie设置
加载exprss模块
var express = require('express');
创建app应用 (相当于NodeJS Http.createServer();)
代码块语法遵循标准markdown代码,例如:
var app = express();
加载模板处理模块(用来处理HTML等模板)
var swig = require('swig');
- 配置应用模板,定义当前模板使用的模板引擎
app.engine('html',swig.renderFile); //参数:1.模板引擎的名称,也为模板文件后缀;2.用于解析处理模板内容的方法
- 定义模板存放目录
app.set('views','./views'); //参数:第一个参数必须是views,第二个是目录
- 注册所用的模板引擎
app.set('view engine', 'html'); //参数:第一个参数必须为view engine,第二个参数与engine第一个参数对应
- 取消模板缓存(开发模式下)
swig.setDefaults({ cache: false });
设置静态文件托管(例如css,image等静态文件)
- 例如,当用户访问的url以public开始,那么直接返回对应__dirname + ‘/public’下的文件
app.use('/public',express.static(__dirname + '/public'));
加载数据库模块
var mongoose = require('mongoose');
//连接数据库
mongoose.connect('mongodb://username:password@host:port/database?options...',{useMongoClient: true},function(err){
if(err){
console.log(err);
}else{
console.log('数据库连接成功');
//监听http请求
app.listen(8081);
}
});
**注意:username、password为所选数据库database对应的用户名和密码,host为ip地址,port为端口号,options可选。
加载body-parser,处理post提交过来的数据
var bodyParser = require('body-parser');
app.use( bodyParser.urlencoded({extended: true}) );
Cookie相关设置
- 首先,加载cookies模块
var Cookies = require('cookies');
req.cookies = new Cookies(req, res);
- 存储cookie,set方法(登录时)
//以设置cookie:userInfo为例
req.cookies.set('userInfo',JSON.stringify({
_id: userInfo._id,
username: userInfo.username
}));
- 获取cookie,get方法
req.cookies.get('userInfo')
- 完整版示例如下:
1.获取cookie
app.use( function(req, res, next){
req.cookies = new Cookies(req, res);
//解析登录用户cookie信息
req.userInfo = {};
if(req.cookies.get('userInfo')){
try{
req.userInfo = JSON.parse(req.cookies.get('userInfo'));
}catch (e){}
}
next();
});
2.存储cookie
responseData.userInfo = {
_id: userInfo._id,
username: userInfo.username
};
req.cookies.set('userInfo',JSON.stringify({
_id: userInfo._id,
username: userInfo.username
}));
2018/4/8

本文详细介绍使用NodeJS和Express框架搭建项目的全过程,包括模块加载、模板处理、静态文件托管、数据库连接、POST请求处理及Cookie操作等内容。


被折叠的 条评论
为什么被折叠?



