在2、创建后端项目(node.js + express)创建以后还有些配置未完善,本文进行完善
一、目录
|ProjectsServer
-node_modules //依赖包
-routes //路由文件夹
-controllers //控制器文件夹
-services //服务文件夹
-utils //公用文件夹
-.gitignore //git配置
-app.js //入口文件
-package.json //配置文件
-nodemon.json //nodemon配置文件
-yarn.lock //依赖包锁
|ProjectsServer
二、配置nodemon
nodemon可以理解是热更新,就是在程序在node环境运行,修改代码,立即更新。应该不会有人拒绝吧。
安装
yarn add nodemon
配置项,根目录nodemon.json
{
"verbose": true,
"watch":["*/*"],
"ignore": ["*.test.js", "fixtures/*"],
"script": "app.js",
"execMap": {
"rb": "ruby",
"pde": "processing --sketch={{pwd}} --run"
},
"options":{
"extensions":["js", "coffee"],
"exec": "node"
}
}
配置package.json
...
"scripts": {
"start": "nodemon --config nodemon.json",
"server": "node app.js"
},
...
以后启动项目就用 yarn start
三、配置post请求
主要是通过body-parser解析请求体
使用方法
const bodyparser = require('body-parser');
app.use(bodyparser.urlencoded({ extende: true }));
app.use(bodyparser.json())
四、配置cookie
通过cookie-parser实现
安装
yarn add cookie-parser
使用方法
const cookieParser = require('cookie-parser');
app.use(cookieParser())
五、配置公共处理
1、错误处理
utils 目录下创建errorHandler.js
module.exports = (err, req, res, next) => {
err.statusCode = err.statusCode || 500;
err.status = err.status || "error";
res.status(err.statusCode).json({
status: err.status,
message: err.message,
});
};
根目录 app.js使用
const errorHandler = require("./utils/errorHandler");
app.use(errorHandler)
utils 目录下创建appError.js
class AppError extends Error {
constructor(msg, statusCode) {
super(msg);
this.statusCode = statusCode;
this.error = `${statusCode}`.startsWith('4') ? 'fail' : 'error';
this.isOperational = true;
Error.captureStackTrace(this, this.constructor);
}
}
module.exports = AppError;
根目录app.js 使用
const AppError = require("./utils/appError");
app.all("*", (req, res, next) => {
next(new AppError(`The URL ${req.originalUrl} does not exists`, 404));
});
到此配置是配置完了,但你不能正常使用,下一章节梳理原理后就OK了