零基础使用node+express搭建服务器流程
前端-node+express
1.全局安装express脚手架
在安装了脚手架之后,可以通过
express + 项目名
直接快速创建后台服务
npm i -g express-generator
2. 创建express框架后台服务
这里会看见一堆create文件
express + 你的后台项目名称
3.下载依赖
进入刚刚创建的项目,cd + 项目名
下载之后才能启动这个express项目
npm i
4.运行服务
npm start
5.服务器就搭建好了
访问localhost:3000可以看到
6.安装express
在这个后台项目文件里
然后再输入一下代码
npm i express -S
————————————下面之后是连接数据库,创建路由内容————
7.创建连接数据库的文件 connectDB.js
这个文件你可以放哪里都行,我这里的数据库是mongodb,我直接放根目录下了
这里的exam,就是你自己创建的数据库
mongodb://localhost:27017/exam'
// connectDB.js
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/exam', {useNewUrlParser: true, useUnifiedTopology: true});
mongoose.connection.on('connected', ()=>{
console.log(`数据库已经连接成功~~~`)
})
mongoose.connection.on('error', ()=>{
console.log('数据库连接出错!!!')
})
mongoose.connection.on('disconnected',()=>{
console.log('数据库连接已断开!!!~~~')
})
module.exports = mongoose
8.把数据库引入到app.js
只要在app.js添加一下代码,这里其实已经连接成功数据库了
// 引入mongodb数据库
require('./connectDB')
9.接下来写表的模型
就是表的字段,表的约束
在跟目录下创建models文件夹,在models文件夹下创建对应的模型
我这里的M_user.js
schema里面的内容就是你要定义表的表头,也就是字段
//M_user.js
/*
创建user用户模型
*/
const mongoose = require('mongoose')
const { Schema } = mongoose;
const userSchema = new Schema({
user_id: {
type: String,
require: true,
},
password: {
type: String,
require: true,
},
user_name: {
type: String,
require: true,
},
sex: {
type: String,
enum: ['男','女'],
default: '男'
},
phone: {
type: Number,
require: true,
},
school: {
type: Number,
},
academy: {
type: Number,
},
user_type: {
type: Number,
enum: [1, 2, 3],
default: 1,
require: true,
}
});
module.exports = mongoose.model('users', userSchema)
10.把上面的模型引入到路由
在routes里面创建对应的路由(user.js)
我这里先创建api文件夹,然后放在里面
路由user.js
router.post(’/login’)是我写的一个接口
// user.js
const express = require('express')
const router = express.Router()
const mongoose = require('mongoose')
const User = require('../../models/M_user')
router.post('/login', (req, res) => {
const user_id = req.body.user_id
const password = req.body.password
User.find({user_id, password}, (err, data) => {
if (err) {
res.status(404).json({status: 0, msg: '数据库出错'})
}
{
if (data[0]) {
res.json({status: 1, msg: '登录成功'})
} else {
res.status(404).json({status: 0, msg: '用户名或密码错误'})
}
}
})
})
module.exports = router
11.把写好的路由引入到app.js
在app.js,写入一下代码
代码位置你可以参考原本写的地方
var userRouter = require('./routes/api/user')
app.use('/user', userRouter)
12.现在你就可以在前端写请求访问接口了
因为上面那种方式是在 /user 里面的 /login
所以这个接口在前端请求时为 /user/login,但具体前端页面跟这个没关系。
13.另外请求跨域问题
可以参考我另一篇文章
https://blog.csdn.net/jinzai9976/article/details/115877679?spm=1001.2014.3001.5501