MEAN.JS - 构建数据模型
在本章中,我们将演示如何在 Node-express 应用程序中使用数据模型。
MongoDB 是一个开源 NoSQL 数据库,以 JSON 格式保存数据。它使用面向文档的数据模型来存储数据,而不是像我们在关系数据库中那样使用表和行。在本章中,我们使用 Mongodb 来构建数据模型。
数据模型指定文档中存在哪些数据,以及文档中应该存在哪些数据。请参阅官方 MongoDB 安装,安装 MongoDB。
我们将使用上一章的代码。您可以在此链接中下载源代码。下载 zip 文件;将其解压缩到您的系统中。打开终端并运行以下命令来安装 npm 模块依赖项。
$ cd mean-demo $ npm install
将 Mongoose 添加到应用程序
Mongoose 是一个数据建模库,它通过使 MongoDB 变得强大来指定数据的环境和结构。您可以通过命令行将 Mongoose 安装为 npm 模块。转到您的根文件夹并运行以下命令 −
$ npm install --save mongoose
上述命令将下载新包并将其安装到 node_modules 文件夹中。--save 标志会将此包添加到 package.json 文件中。
{ "name": "mean_tutorial", "version": "1.0.0", "description": "this is basic tutorial example for MEAN stack", "main": "server.js", "scripts": { "test": "test" }, "keywords": [ "MEAN", "Mongo", "Express", "Angular", "Nodejs" ], "author": "Manisha", "license": "ISC", "dependencies": { "express": "^4.17.1", "mongoose": "^5.5.13" } }
设置连接文件
要使用数据模型,我们将使用 app/models 文件夹。让我们创建模型 students.js,如下所示 −
var mongoose = require('mongoose'); // 定义我们的学生模型 // module.exports 允许我们在调用时将其传递给其他文件 module.exports = mongoose.model('Student', { name : {type : String, default: ''} });
您可以通过创建文件并在应用程序中使用它来设置连接文件。在 config/db.js 中创建一个名为 db.js 的文件。文件内容如下 −
module.exports = { url : 'mongodb://localhost:27017/test' }
此处 test 是数据库名称。
此处假设您已在本地安装了 MongoDB。安装后,启动 Mongo 并创建名为 test 的数据库。此数据库将包含名为 students 的集合。向此集合插入一些数据。在我们的示例中,我们使用 db.students.insertOne( { name: 'Manisha' , place: 'Pune', country: 'India'} ); 插入了一条记录
将 db.js 文件带入应用程序,即 server.js。文件内容如下所示 −
// 模块 =================================================== const express = require('express'); const app = express(); var mongoose = require('mongoose'); // 设置我们的端口 const port = 3000; // 配置 ================================================ // 配置文件 var db = require('./config/db'); console.log("connecting--",db); mongoose.connect(db.url); //Mongoose 连接已创建 // 前端路由 ============================================================== app.get('/', (req, res) ⇒ res.send('欢迎来到 Tutorialspoint!')); //定义路由 app.get('/tproute', function (req, res) { res.send('这是使用 Node 和 Express 开发的应用程序的路由...'); }); // 示例 api 路由 // 获取我们刚刚创建的学生模型 var Student = require('./app/models/student'); app.get('/api/students', function(req, res) { // 使用 mongoose 获取数据库中的所有学生 Student.find(function(err, students) { // 如果检索时出错,则发送错误。 // res.send(err) 之后的任何操作都不会执行 if (err) res.send(err); res.json(students); // 以 JSON 格式返回所有学生 }); }); // 在 http://localhost:3000 启动我们的应用 app.listen(port, () ⇒ console.log(`示例应用正在监听端口 ${port}!`));
接下来,使用以下命令运行应用程序 −
$ npm start
您将获得如下图所示的确认信息 −
现在,转到浏览器并输入 http://localhost:3000/api/students。您将获得如下图所示的页面 −