express

express

express生成器的安装,访问express的中文网,其中有介绍express的安装和入门,现在来安装他吧

对于express而言,其是由nodejs封装api而成,所以需要先装上nodejs,此步省略,打开终端。最好是以管理员身份运行,到达nodejs的安装根目录,对express的安装器进行安装。在cmd窗口输入如下指令

1
npm install -g express-generator

再输入

1
express

根据提示进行安装,进入项目,安装相关依赖

1
npm i

即可生成一个express应用,进入项目可以看到项目的基本结构,找到package.json找到运行脚本

1
npm run start 

然后就可以在本地3000端口访问express服务了

1.更改端口

在app.js中,可以修改端口,只需要在导出前加上代码即可

1
process.env.PORT = 80;

app.js所有代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');

var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', indexRouter);
app.use('/users', usersRouter);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
next(createError(404));
});

// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};

// render the error page
res.status(err.status || 500);
res.render('error');
});
process.env.PORT = 80;

module.exports = app;

2.检测代码更改自动重新启动项目

安装nodemon

1
npm i nodemon

找到启动脚本,在启动脚本前加nodemon --exec

1
2
3
"scripts": {
"start": "nodemon --exec node ./bin/www"
},

3.简化app流程

app.js中可以不需要这么多配置项,可以简化配置相关代码,只留下有用的部分,将其中代码替换为

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
const express = require('express');
const cors = require('cors');
const app = express();

// 中间件
//跨域中间件
app.use(cors());
//json解析中间件
app.use(express.json());
//url编码中间件
app.use(express.urlencoded({ extended: true }));

// 路由
app.use('/api/test', require('./routes/test'));
//设置运行的端口
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`);
});

创建一个路由文件夹routes,在其中新建一个test.js文件这是路由的入口,可以调用controler进行请求,在test.js中写入

1
2
3
4
5
const express = require('express');
const router = express.Router();
const testController = require('../controllers/testController');
router.get('/', testController.getAllStudents);
module.exports = router;

创建 一个controllers文件夹,正在其中创建一个testController在其中写入

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

exports.getAllStudents = async (req, res) => {
try {
res.json({
message: 'This is a test message',
data: [
{ id: 1, name: 'John' },
{ id: 2, name: 'Mary' },
{ id: 3, name: 'Tom' }
]
})
}
catch (error) {
res.status(500).json({ message: error.message });
}
};

启动项目,访问localhost:3000/api/test就可以看到返回的json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"message": "This is a test message",
"data": [
{
"id": 1,
"name": "John"
},
{
"id": 2,
"name": "Mary"
},
{
"id": 3,
"name": "Tom"
}
]
}

现在可以进行相关的开发