node + express + mongodb 手动配置
首先創建一個文件夾,在文件夾中創建一個以js為后綴的主文件列如app.js
下載express框架和mongoose模塊用來操作mongodb數據庫
npm i express --save npm i mongoose --save在app.js文件中;
第一步、引入express然后引入bodyParser模塊是用來解析客戶端數據
第二步、創建express應用
第三步、引入需要的路由文件(類似于Django的class類視圖,有幾個視圖創建幾個路由文件)
第四步、設置跨域訪問,代碼如下:
跨域代碼:
//設置跨域訪問 app.all("*", function (req, res, next) {//設置允許跨域的域名,*代表允許任意域名跨域res.header("Access-Control-Allow-Origin", req.headers.origin || '*');// //允許的header類型res.header("Access-Control-Allow-Headers", "Content-Type, Authorization, X-Requested-With");// //跨域允許的請求方式 res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");// 可以帶cookiesres.header("Access-Control-Allow-Credentials", true);if (req.method == 'OPTIONS') {res.sendStatus(200);} else {next();} })第五步、解析post數據,代碼如下:
app.use(bodyParser.urlencoded({ extends: false })) app.use(bodyParser.json())app為應用名
第六步、把引入的路由放到use中間件上為路由對象匹配請求路徑,列如,代碼如下:
app.use('/list',ls)list為一級路由,ls是引入的路由模塊
第七步、配置運行項目端口號,代碼如下:
app.listen(3000,()=>{console.log('服務器啟動成功'); })端口號為3000
app.js全部代碼如下:
const express=require("express")//引入express const bodyParser = require('body-parser')//解析客戶端數據 require("./sjk")//引入數據庫 const app=express()//創建應用 const ls = require('./router')//引入路由//設置跨域訪問 app.all("*", function (req, res, next) {//設置允許跨域的域名,*代表允許任意域名跨域res.header("Access-Control-Allow-Origin", req.headers.origin || '*');// //允許的header類型res.header("Access-Control-Allow-Headers", "Content-Type, Authorization, X-Requested-With");// //跨域允許的請求方式 res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");// 可以帶cookiesres.header("Access-Control-Allow-Credentials", true);if (req.method == 'OPTIONS') {res.sendStatus(200);} else {next();} })app.use(bodyParser.urlencoded({ extends: false })) app.use(bodyParser.json())app.use('/list',ls)//運行項目端口號 app.listen(3000,()=>{console.log('服務器啟動成功'); })然后數據庫的文件夾里面創建連接數據表文件,列如database.js
在database.js文件中;
第一步、引入mongoose模塊
第二步、連接數據庫,代碼如下:
mongoose.connect("mongodb://127.0.0.1/list").then(()=>{console.log('數據庫連接成功') })127.0.0.1為數據庫地址list為數據庫表名
再創建數據表模型的文件(類似于Django的models文件,但是是一個模型創建一個文件)例如創建一個list.js文件
在list.js文件中;
第一步、引入mongose模塊
第二步、創建表字段
第三步、把數據表向外暴露
list.js全部代碼:
const mongoose = require("mongoose")//引入mongoose//創建數據表 const list=new mongoose.Schema({//表字段photo:{type:String},name:{type:String},ower:{type:String},jianjie:{type:String} })//把數據表向外暴露 module.exports=mongoose.model("list",list)創建一個文件夾放配置路由文件在路由文件里面寫邏輯代碼從前端獲取數據和返回數據給前端,(類似于Django的view文件中的類視圖)例如文件名為router.js。
第一步、引入express
第二步、創建路由對象
第三步、引入數據庫文件,對數據庫進行增刪改查
第四步、寫路由請求方式、邏輯代碼
第五步、導出路由
router.js全部代碼:
const express = require("express")//引入express const router = express.Router()//創建路由對象 const ls = require("./list")//引入數據庫//請求方式 路由 //req為請求 res為響應 router.get("/ll",(req,res)=>{//邏輯代碼var obj={photo:'成功'}res.json({obj})//返回數據 })//導出路由 module.exports=routermongoose模塊的增刪改查方法合集:
// 創建文檔(構造函數) const peopleList = new PeopleList({name: '姓名',age: '年齡',school:'學校' }) // 將文檔插入到數據 peopleList.save() // 查詢用戶集合中所有文檔 可以根據條件查詢 PeopleList.find().then(result=> console.log(result)) // 通過_id字段查找文檔 會返回一個數組 PeopleList.find({_id:'6152d78d2950e0effd966971'}).then(result=>console.log(result))// findOne返回一條文檔 是對象格式 PeopleList.findOne({name:'李逵'}).then(result=>console.log(result))// $gt大于 $lt小于 PeopleList.find({ age: { $gt: 16, $lt: 25 } }).then(result => console.log(result)) // $in包含 PeopleList.find({ name:{$in:'張飛'}}).then(result=>console.log(result)) // 選擇要查詢的字段 PeopleList.find().select('name').then(result=>console.log(result))// 對查詢出來的字段進行排序 sort升序 -sort降序 PeopleList.find().sort('age').then(result=>console.log(result)) // skip跳過多少數據 limit限制查詢數量 PeopleList.find().skip(1).limit(2).then(result => { console.log(result)})// 查找一條文檔并刪除 PeopleList.findOneAndDelete({ _id: '6152d94cda9b9bf65c544a97' }).then(result => console.log(result)) // 刪除多個文檔 PeopleList.deleteMany({}).then(result => console.log(result))// 更新文檔 PeopleList.updateOne({ name: '李逵' }, {name:'高俅'}).then(result=>console.log(result)) PeopleList.update({ _id: '6152d9f3e65fededb3f8dc0b' }, { age: 33 }).then(result => console.log(result)) // 更新多個文檔 PeopleList.updateMany({}, {school:'振濤教育'}).then(result=>console.log(result)) 李逵' }, {name:'高俅'}).then(result=>console.log(result)) PeopleList.update({ _id: '6152d9f3e65fededb3f8dc0b' }, { age: 33 }).then(result => console.log(result)) // 更新多個文檔 PeopleList.updateMany({}, {school:'振濤教育'}).then(result=>console.log(result))總結
以上是生活随笔為你收集整理的node + express + mongodb 手动配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: React如何使用 Ant Design
- 下一篇: RSA简介