NodeJS搭建项目的简单配置与数据库连接

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值