NodeJS Express框架——API书写

先附上项目结构

config可以放很多中间件,我在下面创了一个mongoDB的文件夹放数据连接池封装的各类 增删查改 的方法

我使用了mongoose,Mongoose是在node.js异步环境下对mongodb进行便捷操作的对象模型工具

npm install mongoose

//db.js
let mongoose = require('mongoose');
let database_name = 'mongodb://localhost:27017/blog';
let dbData = {
    selectall: function(name, callback){
        mongoose.connect(database_name, (err, db) => {
            let collection = db.collection(name);
            collection.find().toArray((err, result) => {
                if(err){
                    console.log('error:' + err);
                    return;
                }
                callback(result);
            })
        });
    },
    selectOne: function(name,data,callback){
        mongoose.connect(database_name, (err, db) => {
            let collection = db.collection(name);
            collection.find(data).toArray((err, result) => {
                if(err){
                    console.log('error:' + err);
                    return;
                }
                callback(result);
            })
        });
    },
    insert: function(name,data,callback){
        mongoose.connect(database_name, (err, db) => {
            let collection = db.collection(name);
            collection.insert(data , (err, result) => {
                if(err){
                    console.log('error:' + err);
                    return;
                }
                callback('插入数据成功');
            })
        });
    }
}

module.exports = dbData;
//routes/list.js 有关于list表下的数据

const express = require('express')
const router = express()
const dbData=require('../config/mongoDB/db.js');

router.post('/', (req, res, next) => {
    dbData.selectall('user', function(result){
        console.log(result, 111111)
        res.send(result);
    })
})

router.post('/select',(req,res,next) => {
    console.log(req.query)
    dbData.selectOne('user',req.query,function(result){
        console.log(result,22222)
        res.send(result)
    })
})

router.post('/add',(req,res,next) => {
    console.log(req.query)
    dbData.insert('user',req.query,function(result){
        console.log(result,333333)
        res.send(result)
    })
})
module.exports = router
//app.js

const express = require("express");
const app = express();

// 跨域设置
app.all("*", function(req, res, next) {
    res.header("Access-Control-Allow-Credentials", true);
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "X-Requested-With");
    res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
    res.header("Content-Type", "application/json;charset=utf-8");
    next();
});

// 获取内容
app.use("/list", require("./routes/list.js"));


app.get('/', (req, res) => {
	res.send('api');
});
const port = process.env.PORT || 3001;

app.listen(port, () => {
    console.log('Express server listening on port ' + port);
});

module.exports = app;

在list.js中写了  /   、  /select   、  /add 接口

我们在app.js中定义 list.js 为 /list

所以我们接口的正确路径是 /list/   、 /list/select   、  /list/add,前面别忘了加上你的ip地址,最终是 “http://localhost:3001/list/”、“http://localhost:3001/list/select”、 “http://localhost:3001/list/add

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值