Node.js模块化使用及管理

Node.js的模块化使用及管理
模块职责要求
app.js1. 创建服务;2.做一些服务相关的配置,如模板引擎,body-parser 解析表单post请求体,提供静态资源服务等;3.挂载路由;4.监听端口启动服务
router.js创建路由器,并挂载到路由之中

附:简单项目创建思路/框架

  1. 创建目录结构
    – 项目目录
    – public 公共资源目录(css/js/img -存放jquery. bootstrap.css/js 等)
    – views 前端文件目录(静态页/模板页,模板引擎访问)
    – mongoose数据库目录(分表文件)
    – npm init -y 初始化包说明文件package.json
    – npm install --save 安装加载第三方模块
    express mongoose body-parser art-template express-art-template
第三方模块作用使用/配置方式
expressexpress框架var express=require(‘express’); var app=express();
body-parser解析表单post请求var bodyParser=require(‘body-parser’);app.use(bodyParser.urlencoded({ extended: false }));app.use(bodyParser.json());
art-template/express-art-template模板引擎app.engine(‘html’,require(‘express-art-template’));app.set(‘views’,path.join(__dirname,’./views’));
mongoose数据库模型创建与发布var mongoose=require(‘mongoose’);var Schema=mongoose.Schema;连接;设计表结构;发布
blueimp-md5密码md5加密处理var md5=require(‘blueimp-md5’);
  1. 模块创建与初始化
    –app.js模块(配置使用上述第三方模块及其他,见模块职责)
// app.js模块

// 1. 加载模块
var express=require('express');
var app=express();
var bodyParser=require('body-parser');

// 配置解析表单post请求体数据
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

// 配置模板引擎
app.engine('html',require('express-art-template'));/* 渲染文件后缀名/格式*/
app.set('views',path.join(__dirname,'./views'));/*默认目录设置*/

// 配置静态资源服务,公开指定目录
app.use('/public',express.static(path.join(__dirname,'./public')));
app.use('/node_modules',express.static(path.join(__dirname,'./node_modules')));

// 配置挂载路由
var router=require('./router');
app.use(router); //把路由器挂载到app服务中

// 配置全局错误处理中间件,需要放在app.use(router)后面
app.use(function(err,req,res,next){
    res.status(500).json({
        err_code:500,
        message:err.message
    })
});

// 监听端口
app.listen(2100,function(){
    console.log('Server is started');
})

–route.js模块(创建路由器,并挂载到路由之中,通过exports接口导出router)

var express=require('express');
//引入mongoose模块接口对象
var Stu=require('./mongoose/st');
//引入MD5加密模块
// 引入md5加密
var md5=require('blueimp-md5');

// 创建路由器并挂载
var router=express.Router();
router.get('/',function(req,res){
    console.log('Success');
    res.setHeader('Content-Type','text/plain;charset=utf-8');
    res.end('我成功了')
});

// exports接口对象导出;
module.exports=router;

–st.js mongoose数据库模块(创建表结构并通过exports导出接口对象到router.js中)

// mongoose模块,模型创建与发布

var mongoose=require('mongoose');
var Schema=mongoose.Schema;

// 连接数据库,必须保证mongoose服务已启动,且运行mongod连接数据库
mongoose.connect('mongodb://localhost"27017/itest',{useNewUrlParser:true,useUnifiedTopology:true});

// 设计表结构
var stuSchema= new Schema({
   email:{
        type:String,
        required:true
    },
    password:{
        type:String,
        required:true
    },
    gender:{
        type:Number,
        enum:[0,1],
        default:0
    },
    date:{
        type:Date,
        default:Date.now
    }
});

// 将文档结构发布为模型
module.exports=mongoose.model('Stu',stuSchema)
  1. 设计路由表结构
路径方法get参数post参数备注
/GET渲染首页
/registerGET渲染注册首页
/registerPOSTreq.body.email;req.body.nickname;req.body.password处理注册请求
/loginGET渲染登录页面
/loginPOSTreq.body.email;req.body.password处理登录请求
/logoutGET用户退出,处理退出请求
  1. 界面/路由设计

静态页面设计
异步响应/提交
错误码请求
session状态等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值