• express创建api服务器(接口)及数据库操作


    express创建api服务器(接口)及数据库操作

    1.前期准备工作

    1. npx express -e 项目名称

      其他安装方式

      ​ $ npm i express-generator -g
      ​ $ cnpm i express-generator -g
      ​ $ yarn add express-generator global

    2. 创建成功后会有一些目录文件夹,进入项目安装依赖 cnpm i

      bin ( www 启动了一个静态服务器( web服务器 ))
      node_modules 真个项目的依赖包
      public 静态资源文件
      routes 路由文件夹
      view(xxx.ejs 项目的模板)
      app.js 整个项目的入口文件

      package.json 整个项目的依赖配置文件


    2.打造接口

    1. 项目环境搭建完成后,我们先找到routes文件夹,建一个port.js文件,先暴露接口文件(暴露port.js文件)然后找到app.js文件。

      //先要暴露接口
      const express = require('express');
      
      const router = new express.Router();
      
      module.exports = router;
      

      然后在app.js文件里引入我们在routes里创建的port.js文件:

      var portRouter = require('./routes/port');  
      

      继续在app.js文件里使用我们的这个文件:

      app.use('/port',portRouter);
      
    2. 紧接着,我们在port.js文件中打造接口,还需要在views目录下新建一个port.ejs文件

      const express = require('express');
      
      const router = new express.Router();
      
      router.get('/',( req,res,next ) => {
          res.render('port',{
              ports: JSON.stringify(
                  [
                      {
                          id: 1,
                          content: '敲代码'
                      },
                      {
                          id: 2,
                          content: '打篮球'
                      }
                  ]
              )
          })
      })
      
      module.exports = router;
      
    3. 前端请求这个接口的时候属于跨域请求,所以,需要一个应用级中间件(cors),我们可以在app.js文件中通过app.use 来使用这些中间件,中间件的分类:

      $ cnpm i cors -S 来安装cors

      在入口文件(app.js)中设置跨域的中间件

      /找到app.js文件
      var cors = require('cors')   
      //引入cors模块之后,在终端用命令安装cors模块
      //安装cors的命令   $ cnpm i cors -S
      
      app.use( cors ({
        "origin": "*",
        "methods": "GET,HEAD,PUT,PATCH,POST,DELETE",
        "preflightContinue": false,
        "optionsSuccessStatus": 200
      }) )
      
    4. 找到views目录中的port.ejs文件:

      <%- ports %>  
      
    5. 使用后端接口测试工具测试一下接口

      //Insomnia后端接口测试工具测试的结果
      [
      	{
      		"id": 1,
      		"content": "敲代码"
      	},
      	{
      		"id": 2,
      		"content": "打篮球"
      	}
      ]
      

    3.连接数据库

    1. cnpm i mongoose -D 安装mongoose

    2. 连接数据库

      1. 使用mongoose连接数据库的前提条件是:

        1、mongo数据库已经运行。

        2、已经安装了mongoose包

      2. var mongoose = require("mongoose");

        // 连接字符串格式为mongodb://主机/数据库名

        mongoose.connect('mongodb://localhost/student);

        // 连接本地mongodb ,本机的ip 127.0.0.1,端口:27017 数据库:student
        mongoose.connect("mongodb://127.0.0.1:27017/student",function(err){
           if(!err){//如果连接成功,则打印出connected to Mongodb
              console.log("connected to Mongodb");
           }else{
              throw err;//如果连接失败,则抛出异常
           }
        });
        

    4.数据库的操作流程

    存储数据步骤:定义Schema (骨架) > 创建model(模型)>Entity实例化方法。

    注意:骨架不能操作数据库

    ​ 通过模型来操作

    1、定义骨架

    mongoose有一个Schema的方法,得到一个Schema 的构造函数,通过new这个构造函数得到骨架

    var Schema = mongoose.Schema;
    //通过Schema创建一个骨架  
    var studentSchema  = new Schema({      
         name: String,
         age: String
    });
    
    
    

    2.创建模型

    通过studentSchema 创建一个模型studentModel

    var studentModel = mongoose.model("students",studentSchema  );//创建模型
    
    var instance1 = new studentModel ();  //实例化模型得到实体
    instance1.name="tangyan";
    instance1.age="18";
    //通过save方法保存
    instance1.save(function(err){
        if (err) {
           console.log('保存失败');  
           return;
        }
     });
    
    
    

    3.删除数据

    思路:

    1、删除数据首先要知道删除哪一条信息,需要知道信息的id.

    2、把对应id的数据查询出来,执行remove方法

    假如我们要删除id=”57e24521a755e1154039a403”的数据。

    var id=”57e24521a755e1154039a403”; 
    studentQueryModel.findById(id,function(err,doc){
       if(!doc){
          return next(new NotFound("Doc not found"))
       }else{
          doc.remove(function(){
             console.log('删除成功');
          })
    
    
    
    1. 修改数据

      修改数据的思路:先把对应id的数据查询出来,对需要修改的字段重新赋值,然后执行save方法保存。

      假如我们要修改id=”57e24521a755e1154039a403”的数据。

    var id=”57e24521a755e1154039a403”; 
    
    studentQueryModel.findById(id,function(err,doc){
       //console.log(doc);
       doc.name="xiaotangyan" ;//把name修改为xiaotangyan
       doc.save(function(err){
          if(!err){
              console.log('修改成功');
          }else{
             throw err;
          }
       });
    });
    
    
    

    5.查询数据

    下面find第一个参数{}里面为空,表示查询所有的数据:
    docs表示查询的结果集合,可用于渲染ejs模板引擎。

    studentQueryModel.find({},function(err,docs){
    	console.log(docs);
    });
    
    
    
  • 相关阅读:
    移动端rem屏幕设置
    封装ajax库,post请求
    获取浏览器url参数
    身份证验证
    jq封装插件
    页面分享功能,分享好友、朋友圈判断,用share_type做标记 这里用的是jweixin-1.3.2.js
    @RequestParam和@RequestBody区别
    400报错
    IDEA中用Maven构建SSM项目环境入门
    Eclipse搭建Spring开发环境
  • 原文地址:https://www.cnblogs.com/xiaohanga/p/11150722.html
Copyright © 2020-2023  润新知