八步教你使用NodeJS和MongoDB开发后端接口

本文详述了如何使用Node.js和MongoDB构建后端接口,包括环境配置、服务器创建、视图引擎更改、数据库操作及路由设置等关键步骤。

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

使用Node.js和MongoDB开发后端接口

开始准备

  1. 安装node.js。
  2. 安装Express。
  3. 安装MongoDB。
  4. 往自己的MongoDB数据库里面加点内容
    这些是前置条件,准备好以后就可以往下看了

先来看结果:
这是后端返回的数据,(直接访问数据接口获得的数据)
在这里插入图片描述

一、创建服务器(就是创建Express项目)

cmd进入到我们的项目,创建一个express项目

我们的项目>express server

express后面跟的是项目名字。
创建好的项目如下:
在这里插入图片描述在这里插入图片描述

二、安装依赖

npm install

在这里插入图片描述
不安装的话就会报找不到模块的错误
安装好以后我们会看到项目中多了一个文件夹
在这里插入图片描述

三、cmd运行express项目

cd server          //进入到express项目
node ./bin/www     //启动express项目

运行完后如果什么提示也没有,这就代表成功了,
然后打开localhost:3000端口,看到以下界面说明运行成功。
在这里插入图片描述
在www文件中可以更改端口号
在这里插入图片描述

四、更改我们的视图引擎

express中默认的视图引擎是.jade
我们将其改成.html

  1. 安装ejs(当前目录:你的项目/server/)npm install ejs
  2. 删除views文件夹下面的所有.jade文件,创建一个.html文件,自己写点内容
  3. 在app.js文件中作以下修改
    var ejs=require('ejs'); //引入ejs模块
    app.set('views', path.join(__dirname, 'views'));
    app.engine('.html',ejs.__express);
    app.set('view engine', 'html');
  4. 在routes文件夹中,修改路由
    router.get('/', function(req, res, next) {
    res.render('index')//当访问这个路由的时候渲染views文件夹下面的index.html
    //为什么?这是因为在上面的app.js中定义的
    });

这样就更改完毕了,我们再次启动node服务器(当前目录:你的项目/server)
node ./bin/www
可以看到你们自己的页面显示成功。
在这里插入图片描述

五、安装mongoose

mongoose是对MongoDB的封装,就像Mybatis、Hibernate对JDBC的封装

npm i mongoose 

六、创建model

在server文件夹下创建一个models文件夹,用来存放model。
新建一个model,叫goods.js(自己起名字)
代码如下:

var mongoose=require('mongoose');
var Schema=mongoose.Schema;
var goodsSchema=new Schema({
	//这里根据你的数据库的内容来更改
	"goodId" : Number, 
    "goodName" : Number, 
    "goodPrice":Number,
    "goodImage" : String, 
    "createTime" : String,
});
module.exports=mongoose.model('good',goodsSchema,'good');
//第一个参数对应数据库的集合名,
但是默认会寻找数据库中该集合的复数形式进行映射(比如说这里是good,会对应到数据库中的goods集合),
所以如果数据库的集合名字不是复数形式的话,就要加上第三个参数,
第三个参数就是指定映射的数据库的名字。

七、创建路由(Router)

在routes文件夹中创建一个名为goods.js的文件
内容如下:

var express=require('express');
var router=express.Router();
var mongoose=require('mongoose');
var goodsModel=require('../models/goods');

//如果数据库有账号和密码就写在这。
mongoose.connect('mongodb://127.0.0.1:27017/design');//design是数据库名

//用来监听数据库是否连接成功(还有其他的监听方法,比如disconnected,error)
mongoose.connection.on('connected',function(){
	console.log('connected');
});

//定义路由,当访问该路由的时候,去数据库查找信息并返回
router.get('/',function(req,res,next){
	//{}里面代表的是查询的参数,docs表示查询出来的文档
	goodsModel.find({},function(err,docs){
		if(err){
			res.json({
				success:'fail',
				data:null
			})
		}else{
			res.json({
				success:'true',
				data:docs
			})
		}
	})
})
module.exports=router; 

在app.js文件中
引入该路由并使用

var goodsRouter=require('./routes/goods');
app.use('/goods',goodsRouter);

八、启动项目

启动node服务器(当前目录:你的项目/server) node ./bin/www

访问localhost:3001/goods(端口号默认3000,我的改成了3001)

这是我的数据库里面的内容
在这里插入图片描述
可以看到数据获取到了
在这里插入图片描述

最近重构并优化了一套后端服务的代码: 1. 设计并开发高效的C++对象池算法,时间复杂度为 O(1) 在整个重构框架中,对象池是负责管理内存的底层基本模块 2. 利用命令模式的思想开发 Redis 子模块 抽象出方便高效的接口提供给上层程序员使用 3. 利用组合模式装饰模式的思想开发 MongoDB 数据库查询条件装饰器 将查询条件数据库 MongodbModule 数据模型进行解耦合 4. 抽象出一套 MongoDB Module 结果集接口 通过模板特化技术实现 string/int 等不同索引类型的结果集 5. 开发 AbstractMongodbModule 类处理通用的 MongoDB 数据库表数据操作 数据库中不同的表都有自己的 AbstractMongodbModule 子类对应 6. 用 Perl 开发自动代码生成器,上层程序员对照数据库表结构 .tmpl 配置文件, 自动生成该数据库表的 MongodbModule 子类,减轻程序员新增表时的工作量 7. 结合 Redis 模块 MongoDB 模块,开发 HierarchicalModule 分层数据模型 构造一个 Redis 缓存层 + MongoDB 持久层的后台 Server 架构 并通过简单方便的接口供上层程序员使用,具体的数据分层处理对上层程序员是黑盒的 8. 设计并开发整套缓存层使用的 KEY 规则,方便缓存更新 结合公司的数据订阅系统进行 Redis缓存层 + MongoDB 持久层数据更新功能 9. 重构后的分层数据架构比原有接口效率提高 5 - 400 倍(返回数据记录条数从 150 - 5 条) 绝大部分时间后端接口需要获取记录个数在 50 以内,所以效率提升在 100 倍左右
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值