NODE.JS

1.node基础模块的使用

Buffer:二进制数据处理模块
Events:事件模块
fs:文件系统模块
Net:网络模块
Http:http模块

nodejs 查询手册 https://nodejs.org/api/

2.第三方模块&中间件

body-parser:解析post请求数据
cookies:读/写cookie
swig:模板解析引擎
mongoose:操作mongodb数据

3.node程序入口文件实例

//程序入口文件
//加载express模块
const express = require("express");
//加载模板模块,处理前后端的页面
const swig = require("swig");
//加载数据库模块
const mongoose = require("mongoose");
//加载解析模块
const bodyParser = require("body-parser");
//加载cookies模块
const Cookies = require("cookies");
//引入User
const User = require("./models/User.js");


//创建应用,这个应用有app应用 http.createServer();
var app = express();
/*
	配置中间件
	定义当前所使用模板引擎(页面要用什么模板语言来渲染) render
	swig.renderFile


	第一个参数:模板引擎的名称,同时也是模板文件的后缀
	第二和参数:用于哪种方式进行模板内容的解析
 */
app.engine("html", swig.renderFile);
/*
	设置模板文件的存放目录
	第一个参数 必须是views
	第一个参数 目录
 */
app.set("views", "./views");
/*
	注册所使用的模板引擎
	第一个参数  必须是 view engine
	第二个参数  app.engine 第一个参数一样
 */
app.set("view engine", "html");

/*
	【注】在开发阶段,取消模板缓存
 */
swig.setDefaults({ cache: false });

/*
	app.get() app.post() 精准匹配
	app.use() 只要经过这个路由就触发
 */
//设置静态资源的加载路径

app.use("/public", express.static(__dirname + "/public"));

//body-parser设置
app.use(bodyParser.urlencoded({ extended: true }));
/*
	设置cookies
	next() 是用于,接着执行后续的代码,如果遇到异步操作,我们可以通过next完成异步操作串行。
 */
app.use(function (req, res, next) {
  //后续所有的页面上都可以通过 req.cookies调用cookie
  req.cookies = new Cookies(req, res);
	/*
		每一次加载页面的时候,都会先来加载app.js,在这里判断用户是否已经登录
		再将数据,分发到各个页面
	 */
  req.userInfo = {};
  if (req.cookies.get("userInfo")) {
    try {
      req.userInfo = JSON.parse(req.cookies.get("userInfo"));

      //获取当前登录用户的用户类型,是否是管理员
      User.findById(req.userInfo._id).then(function (userInfo) {
        req.userInfo.isAdmin = Boolean(userInfo.isAdmin);
        next();
      })
    } catch (error) {
      console.log(error);
      next();
    }
  } else {
    next();
  }

})

//监听跳转路径
app.use("/", require("./routers/main"));
app.use("/api", require("./routers/api"));
app.use("/admin", require("./routers/admin"));





//链接数据库
mongoose.connect("mongodb://127.0.0.1:27017", function (err) {
  if (err) {
    console.log("数据库链接失败:" + err);
  } else {
    console.log("数据库链接成功");
    //监听端口号
    app.listen("8888");
    console.log("listen to http://localhost:8888");

  }
})






















你可能感兴趣的:(NODE.JS)