/nuoMiAdmin

Primary LanguageJavaScript

//有些路由方法名不是合规的 JavaScript 变量名,此时使用括号记法,比如: app['m-search']('/', function ...


//请求加载中间件
app.all('/secret', function (req, res, next) {
    console.log('Accessing the secret section ...');
    next(); // pass control to the next handler
});

//-路由路径 -----支持正则匹配 ---  字符串匹配 ---字符串模式



//-路由句柄    可以是一个函数、一个函数数组,或者是两者混合 类似中间件

//-响应方法
// 方法	描述
res.download()	提示下载文件。
res.end()	终结响应处理流程。
res.json()	发送一个 JSON 格式的响应。
res.jsonp()	发送一个支持 JSONP 的 JSON 格式的响应。
res.redirect()	重定向请求。
res.render()	渲染视图模板。
res.send()	发送各种类型的响应。
res.sendFile	以八位字节流的形式发送文件。
res.sendStatus()	设置响应状态代码,并将其以字符串形式作为响应体的一部分发送。

//express.router 类


//2---中间件--middleware
1)应用级中间件--应用级中间件绑定到 app 对象 使用 app.use() 和 app.METHOD(), 
2)路由级中间件-路由级中间件和应用级中间件一样,只是它绑定的对象为 express.Router()。
3)错误处理中间件 ---4个参数必须全  app.use((err,req,res,next)=>{})
4)内置中间件---express.static唯一的内置中间件
5)第三方中间件---
例:cookie-parser加载用于解析 cookie 的中间件
body-parser
cookie-session




3)---内置中间件
var options = {
  dotfiles: 'ignore',
  etag: false,
  extensions: ['htm', 'html'],
  index: false,
  maxAge: '1d',
  redirect: false,
  setHeaders: function (res, path, stat) {
    res.set('x-timestamp', Date.now());
  }
}

app.use(express.static('public', options));


三。模版引擎
名字似乎是固定的,除了路径-----
app.set('views','./public/views');views, 放模板文件的目录
app.set('view engien','pug');view engine, 模板引擎
app.use(express.static('public')); ---用了模版引擎可以不用了????

res.render('index.pug',{ pug变量值传递 }) -- 后缀名可加可不加


四。错误处理
设置环境变量 NODE_ENV 为 “production” 就可以让应用运行在生产环境模式下。

五。为express设置代理 proxy-addr实现
trust proxy变量设置 app.set()

六。数据库
----mysql 
npm i mysql --save
cosnt mysql = require('mysql');
const options = {
  host:
  user:
  password:
  database
  port
}
const connct = mysql.createConnection(options);
connection.connect();
connection.query(sql,()=>{});
connection.end();



token - jwt - 

规则 -- jsonWebToken

验证token -- passport passport-jwt

加密 bcrypt