node 整合sequelize ORM 框架學習

江南一舟110發表於2020-11-21

1.整合express 和orm 框架sequelize 實現學習

所有語言套路基本一樣:一般,新增依賴 建庫建表

1.express整合首先建立node 專案可以參考官網

新增連結描述
初始化node專案

npm init

加入express依賴

 npm install express --save

整合簡單程式碼測試:

const express = require('express')
const app = express()
const port = 8080
const db =require('./db.js');
app.use('/test',db);
const user=require('./user.js');

const models=require('./models')
app.use('/user',user);
app.get('/b', (req, res) => res.json({
	name:'gsc',
	age:20
}));
app.get('/db',async(req,res)=>{
	let{firstName,lastName,email}=req.query;
	let  user= await models.User.create({
		firstName,
		lastName,
		email
	})
	console.log(user);
	
	res.json(user);
})


app.all('*',(req,res)=>res.json({path:req.path}))
app.listen(port, () => console.log(`Example app listening on port ${port}!`))

2,整合ORM資料框架(這裡選擇 sequelize)

1.整合MySQL 驅動這裡跟所有語言整合一樣的套路
npm install --save mysql2
2.npm install --save sequelize
3.整合sequelize cli工具(可以參考這裡:
npm install --save-dev sequelize-cli
npx sequelize-cli init

4.修改config 配置根據環境去修改這裡常識問題明白人一眼看懂
5.利用cli建立表(4步驟在資料庫自己建立一個庫(test))
這裡建立一個user表(username,pwd,sex)
npx sequelize-cli model:generate --name user --attributes username:string,pwd:string,sex:integer
npx sequelize-cli db:migrate
以上出現錯誤Unable to resolve sequelize package in /Users/mac/Documents/HBuilderProjects/userDemo
可以重新安裝一下sequelize

以上執行完成就建立了一個user表在你建立的資料庫下面

6. 5完成以後會多出一個資料夾這裡關注models檔案建立資料庫型別跟這個model裡面的user.js檔案一致

入口檔案index.js引入模組。(不懂模組化的可以瞭解AMD 規範和ES6規範)

完整例子如下:

const express = require('express');
const app = express();
const model = require('./models');
app.get('/test', (req, res) => {
	res.json({
		name: 'Jiangnanyizhou',
		sex: '男',
		location: '浙江杭州',
		job: 'fullStack'

	})
});

app.get('/userlist', async (req, res) => {
	const user = await model.user.findAll();
	res.json(user);
});

app.get('/addUser', async (req, res) => {
	let {
		username,
		pwd,
		sex,

	} = req.query;
	console.log("請求的引數---" + JSON.stringify(req.query));
	const user = await model.user.create({
		username,
		pwd,
		sex: parseInt(sex)

	})
	res.json(user);
});

app.get('/deleteById/:id',async(req,res)=>{
	const {id}=req.params;
	const u= await model.user.destroy({
		where: { 
			id
		}
	});
	res.json(u);
})

app.listen('8888', () => {
	console.log("server lanuch");
})

相關文章