zoukankan      html  css  js  c++  java
  • nodejs + express + mangodb 项目搭建

    nodejs + express + mongodb 项目搭建

    1. mongodb 安装:https://www.cnblogs.com/1285026182YUAN/p/14092002.html

    2. 创建express项目:https://www.cnblogs.com/1285026182YUAN/p/14178465.html

    mongodb版本:4.4.2

    nodejs版本:15.2.0

    express版本:4.16.1

    3. 安装依赖模块 

    npm install mongodb --save
    npm install multer --save

    4. 项目中新建一个api文件夹

    a. 配置文件

      新建api/config文件夹,里面增加db.js文件

    module.exports.DB_URL="mongodb://root:123456@localhost:27017/IflyData";

    b. 控制器文件

      新建api/controller文件夹,里面增加一个public文件夹和一个common.js;

      public文件夹里面放可供前端调用的接口,而common.js里面放通用的配置,这里放了一个返回响应头格式的代码,

      再在public文件夹下面新建一个login.js文件。

    common.js文件
    'use strict'
    var multer = require('multer')
    var common = {
        sendJsonResponse: function(res,status,json) {
            res.header('Access-Control-Allow-Origin', '*');
            res.header('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild');
            res.header('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS');
            res.status(status);
            return res.json(json);
        },
        sendResponse: function(res,status,msg) {
            res.header('Access-Control-Allow-Origin', '*');
            res.header('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild');
            res.header('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS');
            res.status(status);
            return res.send(msg);
        }
    };
    module.exports = common;
    login.js文件
    'use strict';
    var mongoose = require('mongoose');
    var common = require('../common');
    var Login = mongoose.model('Login');
    module.exports.login = function (req, res) {
        var userName = req.userName;
        Login.find({ 'userName': userName }, function (err, data) {
            if (err) {
                common.sendJsonResponse(res, 500, err);
                return;
            }
            console.log(data);
            common.sendResponse(res, 200, data);
        })
    }
    5. 路由
      在routes文件夹中增加login.js文件
    var express = require('express');
    var router = express.Router();
    var db= require('../api/controller/public/login');
    
    /* GET home page. */
    router.get('/login', function (req, res, next) {
      db.login(
        function (response) {
          console.log(response);
          res.json(response);
        }
      );
    });
    
    module.exports = router;

    6. 路由引入

      修改app.js文件

    a. 增加路由文件引用

    var loginRouter = require('./routes/login');

    b. 使用路由

    app.use('/login', loginRouter);

    7. 启动程序

    npm start 

    如安装了 nodemon  也可直接输入 nodemon 来启动程序

  • 相关阅读:
    jQuery-1.9.1源码分析系列(九) CSS操作
    jQuery-1.9.1源码分析系列(八) 属性操作
    jQuery-1.9.1源码分析系列(七) 钩子(hooks)机制及浏览器兼容续
    由一次虚拟内存耗尽看32bits elf在x86_64下运行方式及地址空间布局
    关于TCP关闭想到的一些问题
    pure virtual method called的一种情况
    linux下内存分配时overcommit使用
    gcc对C++局部静态变量初始化相关
    为什么cat binary之后可能出现乱码
    gcc的模版匹配及其它
  • 原文地址:https://www.cnblogs.com/1285026182YUAN/p/14178603.html
Copyright © 2011-2022 走看看