前端使用Express+mongoDB+Navicat开发后端接口(从0到1)

本文详细介绍了如何使用Express生成项目目录,配置MongoDB数据库,通过Navicat进行连接管理,以及在项目中集成mongoose进行数据操作。此外,还展示了如何开发后端接口,提供了一个简单的用户列表GET接口的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

搭建项目目录

1.安装express和脚手架express-generator

npm i express -g
npm i express-generator -g

2.接着使用express命名创建项目,projectName项目文件名

express projectName

3.打开对应的文件夹,看到相应的目录

4.进入文件夹打开终端 运行npm i 安装项目依赖

npm i

5.由于只做接口开发,可以删除views文件夹。并在routes文件夹下创建api文件夹(里面存放开发的接口)

 安装Navicat和mongoDB,启动mongodb并连接到navicat

navicat下载链接: Navicat | 下载 Navicat Premium 14 天免费 Windows、macOS 和 Linux 的试用版

mongoDB下载连接: 推荐下载压缩包模式

MongoDB Enterprise Server Download | MongoDB

1.配置mongoDB

将下载好的mongoDB压缩包解压到 C:\Program Files

并在C盘根目录下创建data文件夹,data文件夹下创建db文件夹,用来存放数据库数据C:\data\db

 2.启动mongoDB

C:\Program Files\mongodb-win32-x86_64-enterprise-windows-5.0.18\bin

在解压的文件夹下找到bin文件夹,以bin文件夹为终端根目录输入mongod,启动服务。

在浏览器中输入 http://127.0.0.1:27017/ 

弹出此信息 代表启动成功 

3.在终端使用mongo操作数据库(做数据库初始化)

C:\Program Files\mongodb-win32-x86_64-enterprise-windows-5.0.18\bin

在解压的文件夹下找到bin文件夹,以bin文件夹为终端根目录输入mongo

 mongo操作数据库的命名:

https://blog.youkuaiyun.com/m0_56023096/article/details/131477312?spm=1001.2014.3001.5501

4.Navicat连接mongoDB数据库

点击连接选择MongoDB

 输入连接名(自定义)

 双击即可启动

在项目中连接数据库

1.在项目中安装mongoose

npm i mongoose

2.在根目录下创建db/db.js文件

/**
 * 
 * @param success 数据库连接成功的回调
 * @param error 数据库连接失败的回调
 */
module.exports = function (success, error) {

    if(typeof error !== 'function') {
        error = () => {
            console.log('连接失败');
        }
    }

    // 1. 引入 mongoose
    const mongoose = require('mongoose')

    // 2. 连接mongodb                           database: 数据库的名字
    mongoose.connect(`mongodb://127.0.0.1:27017/database`);

    // 设置回调
    mongoose.connection.once('open', () => {
        console.log('数据库连接成功');
        success()
    })

    mongoose.connection.on('error', () => {
        console.log('数据库连接失败');
        error()
    })

    mongoose.connection.on('close', () => {
        console.log('数据库关闭连接');
    })
}

3.在bin/www.js文字中导入db文件(www.js文件想当于启动服务时的入口文件)

// 导入db
const db = require('../db/db.js')

db(() => {
  
  var app = require('../app');
  var debug = require('debug')('server:server');
  var http = require('http');

  /**
   * Get port from environment and store in Express.
   */

  var port = normalizePort(process.env.PORT || '3000');
  app.set('port', port);

  /**
   * Create HTTP server.
   */

  var server = http.createServer(app);

  /**
   * Listen on provided port, on all network interfaces.
   */

  server.listen(port);
  server.on('error', onError);
  server.on('listening', onListening);

  /**
   * Normalize a port into a number, string, or false.
   */

  function normalizePort(val) {
    var port = parseInt(val, 10);

    if (isNaN(port)) {
      // named pipe
      return val;
    }

    if (port >= 0) {
      // port number
      return port;
    }

    return false;
  }

  /**
   * Event listener for HTTP server "error" event.
   */

  function onError(error) {
    if (error.syscall !== 'listen') {
      throw error;
    }

    var bind = typeof port === 'string'
      ? 'Pipe ' + port
      : 'Port ' + port;

    // handle specific listen errors with friendly messages
    switch (error.code) {
      case 'EACCES':
        console.error(bind + ' requires elevated privileges');
        process.exit(1);
        break;
      case 'EADDRINUSE':
        console.error(bind + ' is already in use');
        process.exit(1);
        break;
      default:
        throw error;
    }
  }

  /**
   * Event listener for HTTP server "listening" event.
   */

  function onListening() {
    var addr = server.address();
    var bind = typeof addr === 'string'
      ? 'pipe ' + addr
      : 'port ' + addr.port;
    debug('Listening on ' + bind);
  }

})

使用db函数包裹住原www.js文件中的代码

4.在根目录下创建module模型文件夹

在module文件夹创建模型文件(每一个模型文件对应一个数据库中的集合)

代码示例:module/user.js

// 1. 导入mongoose
const mongoose = require('mongoose')

// 2.创建模型结构对象
const userSchema = new mongoose.Schema({
    name: String,   // 对应数据库集合中的变量
    age: Number,    // 对应数据库集合中的变量
    sex: String     // 对应数据库集合中的变量
});
// 3.创建模型对象                  users: 对应数据库中的集合名
const userModel = mongoose.model('users', userSchema)

// 4.导出模型
module.exports = userModel

数据库示例:

开发后端接口

1.在routes/api文件夹下创建对应的后端接口开发文件

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

// 导入对应的模型文件
const userModel = require('../../module/user.js')

//           /userlist 接口路径
router.get('/userlist', (req,res) => {

  // 操作数据库 这是一个查询操作
  userModel.find().then(data => {
    res.json({
      code: '200', // 响应成功的编码
      msg: 'success request', // 响应成功的信息
      data // 响应成功的数据
    })
  }).catch(() => {
    res.json({
      code: '400', // 响应失败的编码
      msg: 'error request', // 响应失败的信息
      data: null // 响应失败的数据
    })
  })
})

module.exports = router;

使用mongoose操作数据实现增删改查(详细命名请转)

https://blog.youkuaiyun.com/m0_56023096/article/details/131520042?spm=1001.2014.3001.5502

2.在app.js文件中引入并注册接口文件

 /api: 代表请求路径都要有/api

3. 运行文件

npm run start

 

4.使用postman请求接口

至此,一个简单的get获取列表的接口开发完成了!!!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值