node express框架基本配置
初始化项目
express -e
安装依赖包
npm install
安装第三方包
npm install xxx --save-dev
dos 运行node app 项目就可以跑起来了
app.js入口文件解释
/*应用程序的启动(入口)文件*///加载express模块var express = require('express');//加载数据库var mongoose = require('mongoose');//加载body-parser,用来处理post提交过来的数据var bodyParser = require('body-parser');//加载cookie模块var Cookies = require('cookies');//创建app应用var app = express();
渲染html模板
//加载模板处理模块var swig = require('swig');//定义当前应用所用的模板引擎//第一个参数:模板引擎的名称,同时也是模板文件的后缀,第二个参数解析模板内容的方法app.engine('html', swig.renderFile);//设置文件存放目录,第一个参数必须是views,第二个参数是目录app.set('views', './views');//注册使用的模板引擎,第一个参数必须是view engine,第二参数是app。engine第一个参数是一致的app.set('view engine', 'html');
设置静态文件托管
//当文件访问以/public开头,那么直接返回对应__diername+'/public'下的文件app.use('/public', express.static(__dirname + '/public'));
在开发过程中取消模板缓存
swig.setDefaults({ cache: false })
启动数据库
//--dbpath:mongdb路径,--port:端口号mongod --dbpath=C:\Users\YEZI\Desktop\yzblog\db --port 27018
连接数据库
var mongoose = require('mongoose'); //引用数据库模块mongoose.connect('mongodb://localhost:27018/yzblog'); //连接数据库var db = mongoose.connection;db.on('error', console.error.bind(console, 'connection error:'));db.once('open', function() { console.log('数据库已打开!');})
请求对象
//访问请求对象(request object (req)),响应对象(response object (res))// GET请求路由app.get('/', function (req, res) { res.send('GET request to the homepage');});// POST请求路由app.post('/', function (req, res) { res.send('POST request to the homepage');});app.all() //是一个特殊的路由方法,没有任何 HTTP 方法与其对应,它的作用是对于一个路径上的所有请求加载中间件。在下面的例子中,来自 “/secret” 的请求,不管使用 GET、POST、PUT、DELETE 或其他任何 http 模块支持的 HTTP 请求,句柄都会得到执行。app.all('/secret', function (req, res, next) { console.log('Accessing the secret section ...'); next(); // pass control to the next handler});
相应对象
//下表中响应对象(res)的方法向客户端返回响应,终结请求响应的循环。如果在路由句柄中一个方法也不调用,来自客户端的请求会一直挂起。res.download() //提示下载文件。res.end() //终结响应处理流程。res.json() //发送一个 JSON 格式的响应。res.jsonp() //发送一个支持 JSONP 的 JSON 格式的响应。res.redirect() //重定向请求。res.render() //渲染视图模板。res.send() //发送各种类型的响应。res.sendFile //以八位字节流的形式发送文件。res.sendStatus() //设置响应状态代码,并将其以字符串形式作为响应体的一部分发送。