우선 노드 환경은 말할 필요도 없이
그런 다음 익스프레스 스캐 폴딩 익스프레스 생성기를 사용합니다.
프로젝트 디렉토리를 빠르게 생성
express-generator를 전역으로 설치
npm i -g express-generator
复制代码
그런 다음 express 명령을 사용하여 프로젝트를 생성합니다. programnem은 프로젝트 폴더 이름입니다.
express <programname>
复制代码
그런 다음 완전한 익스프레스 프로젝트 디렉토리가 있습니다. 프로젝트 폴더를 입력하십시오 ->
## 安装依赖
npm install
## 运行项目
npm run start
复制代码
브라우저에 localhost:3000을 입력하면 다음 인터페이스를 볼 수 있습니다.
그러나 파일을 수정하면 페이지가 변경되지 않으며 npm start를 다시 시작해야 합니다. 이는 start가 핫 업데이트가 아니기 때문입니다.
이 시점에서 nodemon 종속성을 설치하고 nodemon을 사용하여 서비스를 실행할 수 있습니다.
nodemon을 설치하고 사용
npm i -S nodemon
复制代码
패키지.json 열기
旧代码
"scripts": {
"start": "node ./bin/www"
},
新代码"scripts": {
"dev": "nodemon ./bin/www",
"start": "node ./bin/www"
},
增加了 ——> "dev": "nodemon ./bin/www",
复制代码
이 시점에서 우리는 실행
npm run dev
复制代码
코드를 수정하면 페이지의 내용이 변경되므로 다시 실행할 필요가 없습니다.
위에서 말한 것이 너무 많아서 조금 장황했지만 가능한 한 명확하게 하고 싶습니다.
다음에는 속도를 높이겠습니다.
디렉토리 구조 수정
나는 route 폴더를 별도의 src 폴더 아래에 두는 것을 좋아합니다. src 아래에 보통 아래와 같이 다른 폴더를 만듭니다.
비교를 위해 jwt 서명, 애플릿 로그인을 위한 appid 및 비밀 키 등과 같은 공용 구성을 저장하기 위해 외부에 새 구성 폴더를 만들었습니다.
mongodb 데이터베이스 설치 및 사용
위는 디렉토리 구조의 생성, 다음 단계는 데이터베이스 링크, 모델 작업입니다.
安装mongoose依赖
npm i -S mongoose
复制代码
db 폴더 아래에 새 mongodb.js를 만듭니다.
// 引入 mongoose
const mongoose = require('mongoose')
// 连接数据库,自动新建 ExpressApi 库
mongoose.connect('mongodb://localhost:27017/ExpressApi', {
useNewUrlParser: true, // 避免“不建议使用当前URL字符串解析器”
useCreateIndex: true, // 解决MongoDB弃用警告
useUnifiedTopology: true, // 解决连接报错问题
useFindAndModify: false
})
module.exports = mongoose
复制代码
그런 다음 모델 폴더 아래에 User.js와 같은 새 모델 파일을 만듭니다.
여기에서 모델 파일의 이름을 큰 혹으로 지정하는 것이 좋습니다.
User.js
// 引入mongodb
const mongoose = require('../db/mongodb')
const bcrypt = require('bcrypt')
// 建立用户表
const UserSchema = new mongoose.Schema({
username: {
type: String,
unique: true
},
password: {
type: String,
set(val){
return bcrypt.hashSync(val, 10)
},
select: false
},
createTime: {
type: Date,
default: Date.now
},
updateTime: {
type: Date,
default: Date.now
}
})
// 建立用户数据库模型
const User = mongoose.model('User', UserSchema)
module.exports = { User }
复制代码
가장 기본적인 사용자 모델에는 일반적으로 사용자 이름과 비밀번호는 물론 생성 시간, 업데이트 시간,
여기서도 bcrypt 암호 암호화가 사용됩니다.
npm i -S bcrypt
复制代码
데이터베이스 모델이 생성된 후 경로에서 사용할 수 있습니다.
예를 들어, route/users.js에서 사용합니다.
var express = require('express');
var router = express.Router();
const { User } = require('../model/User')
// 用户注册
router.post('/register', async (req, res, next) => {
const user = await User.create({
username: req.body.username,
password: req.body.password
})
res.send(user)
});
// 获取用户信息
router.get('/info', async (req, res, next) => {
const user = await User.findOne({
_id: req.user_id })
res.send({
code: 200,
data: user
})
})
// 获取用户列表
router.get('/list', async(req, res, next)=>{
const user = await User.find()
res.send({
code: 200,
msg: '获取成功',
data: user
})
})
module.exports = router;
复制代码
위는 간단한 mongodb 데이터베이스의 사용입니다.
코드가 작동하는지 확인하기 위해 인터페이스 디버깅 도구를 사용하여 테스트할 수 있습니다.
여기에서는 테스트를 위해 vscode의 플러그인 REST 클라이언트를 사용합니다.
Vscode는 플러그인 REST 클라이언트를 검색하고 설치합니다.
그런 다음 프로젝트의 루트 디렉토리에 새 .http 파일을 만듭니다.
// test.http@url=http://localhost:3000
### 获取用户列表
get {
{url}}/users/list
### 注册账号
POST {
{url}}/users/register
Content-Type: application/json
{
"username": "user3",
"password": "123456"
}
复制代码
위에는 express+mongodb를 기반으로 하는 간단한 기본 프로젝트가 있으며 여기에는 추가 및 쿼리를 위한 데이터베이스 작업의 예만 있습니다.
후속 개발은 실제로 비즈니스 기능을 구현하는 코드이며 실제로는 비교적 간단합니다.모르는 경우 Baidu로 이동하면 인터넷에 관련 자습서가 많이 있습니다.
저자: Zen Yixia
링크: https://juejin.cn/post/6931253375195414535
출처: Rare Earth Nuggets
저작권은 저자에게 있습니다. 상업용 전재의 경우 저자에게 승인을 요청하고 비상업적 전재의 경우 출처를 표시하십시오.