使用 Node + Express + MongoDB 开发项目的后端接口

  最近在写毕业设计,后端代码必不可少,这是要逼我成为全栈啊。。。

  开发选择了 node,经过我一天的研究,终于捣鼓通了。。。

  过程中遇到了不少bug,就很莫名其妙的bug,就很 ̄へ ̄,最后重装了nodenpmmongodb,再搞一搞,总算通了,可能之前多少有些版本问题吧。

  来粘一下使用 Node + Express + MongoDB 开发项目时,应该怎么搞吧。接我的上篇博客:关于node(5)—— 创建 Node + Express + MongoDB 项目

一、各文件内容

1、新建db文件夹,并在里面创建 db.js

  代码如下:

/* 连接数据库 */
// 1. 引入mongoose
const mongoose = require('mongoose');
// 2. 连接指定数据库(URL只有最后面的数据库名是变化的)
mongoose.connect("mongodb://localhost:27017/blog");
// 3. 获取连接对象
const db = mongoose.connection;
// 4. 绑定连接的监听
db.on('error',error=>{
    console.warn('数据库连接失败!', error)
});
db.once('connected', ()=> {
    // 连接成功回调
    console.log('数据库连接成功!')
});
db.on('disconnected', ()=> {
    console.log("数据库断开连接!");
});

module.exports = mongoose;

2、新建 models 文件夹,并在里面创建自己模块对应的js文件,比如我这里创建的是tag.js

  代码如下:

const { mongoose } = require('../db/db.js');

// 标签模型
const tagSchema = new mongoose.Schema({
    // 标签名称
    name: { type: String, required: true },

    // 创建日期
    create_time: { type: Date, default: Date.now },
    
    // 最后修改日期
    update_time: { type: Date, default: Date.now },
});

// 标签模型
module.exports = mongoose.model('tag', tagSchema,'tags');

  注意最下面 mongoose.model('tag', tagSchema,'tags');这里,第一个参数对应数据库的集合名,但是默认会寻找数据库中该集合的复数形式进行映射。比如说这里是tag,会对应到数据库中的tags集合。

  所以如果数据库的集合名字不是复数形式的话,就要加上第三个参数,第三个参数就是指定映射的数据库的名字。

3、在routes文件夹下创建对应的tag.js

  代码如下:

var express = require('express');
var router = express.Router();

const Tag = require('../models/tag');

exports.getTagList = (req, res, next) => {
    Tag.find({},function (err,data) {
        if (err) {
            console.error('error:',error);
        } else {
            res.send(data);
        }
    });
};

4、在routes文件夹下创建index.js

  代码如下:

// 所有的路由接口
const tag = require('./tag');

module.exports = app => {
  app.get('/getTagList', tag.getTagList);
};

5、在 app.js 入口文件

  增加如下代码:

//将路由文件引入
const route = require('./routes/index');

//初始化所有路由
route(app);

6、启动mongodb服务,连接服务器

  打开cmd,cd 到 mongodb 文件夹的 bin 文件夹下。

  或者直接打开这个文件夹,cmd,我的是装在了c盘,如下图所示,在框内输入cmd:
在这里插入图片描述
  然后执行mongod --dbpath 数据存储目录路径,如下图所示:
在这里插入图片描述
  再重新打开一个cmd,执行mongo,如下图所示:
在这里插入图片描述
  上面两个窗口必须都开着,不能关掉。

7、在你的后端代码那里执行 node ./bin/www,如果你装了nodemon,执行 nodemon./bin/www

  关于安装nodemon看我的博客:关于 Node(3)——如何用 nodemon 实现node应用自动重运行

  执行之后如下图所示:
在这里插入图片描述

8、打开node的端口页面

  这个是在 bin 文件夹下的 www 文件里,如下图所示位置,我这里是把端口改成了4000,默认的是 3000
在这里插入图片描述  打开http://localhost:4000/getTagList

  如下图所示,数据拿到了
在这里插入图片描述
  可能有一些细节没有处理,大家开发时候可以根据自己需求进行处理。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值