zoukankan      html  css  js  c++  java
  • 项目的搭建步骤:

     

    express的开始使用

    1. 检查是否安装脚手架:
      //安装:
      npm i -g express-generator
    2. 使用脚手架搭建一个空项目:
      express [项目名称]
    3. 项目初始化;
      //进入项目目录
      cd [项目名称]
      //安装项目依赖
      npm install
    4. 项目启动:
      npm start //其实本质启动文件就是 ./bin/www
      1. mongodb在js中使用需要通过第三方驱动mongoose来连接和操作:

        //保证mongodb的服务时开启状态
        //连接数据库
        const mongoose = require('mongoose');
        const dbname = "f67";
        mongoose.connect(
         'mongodb://localhost/' + dbname,
        { useNewUrlParser: true, useUnifiedTopology: true }
        );
        const db = mongoose.connection;
        db.on('error', console.error.bind(console, 'connection error:'));
        db.once('open', function () {
         // we're connected!
         console.log("we're connected to " + dbname);
        });
        //下面是生产model的代码:(借助于schema)
        const usersSchema = mongoose.Schema({
         username: String,
         password: String
        });
        const usersModel = mongoose.model('users', usersSchema);
        //"users"必须与数据库集合名称一致
        //查询的使用:
        usersModel.find({username:"zs"},function (err, data) {//错误优先
         if (err) return console.error(err);
         console.log(data);
        })
        //新增
        usersModel.create({username:"ww",password:"000"},function (err, data) {//错误优先
         if (err) return console.error(err);
         console.log(data);
        })
        //修改
        usersModel.updateOne({username:"ww"},{$set:{username:"zl"}},function (err, data) {//错误优先
         if (err) return console.error(err);
         console.log(data);
        });
        //删除
        usersModel.deleteOne({username:"zl"},function (err, data) {//错误优先
         if (err) return console.error(err);
         console.log(data);
        });
        1. 目录结构:

           

        2. 代码:

          //  ./routes/users.js      表现层:完成与用户端的交互,并负责简单的数据处理
          const usersService = require("../service/users");
          router.post('/login', async function (req, res, next) {
           const { username, password } = req.body;//接
           id = ~~id;//数据处理
           const data = await usersService.login({ username, password });//调用主体逻辑
           res.send(data);//发
          });
          // ./service/users.js      业务层:整个路由接口处理对应业务的主体逻辑
          const usersDao = require("../dao/users");
          const service = {}
          service.login = async ({ username, password }) => {
             const data = await usersDao.findUser({ username, password });
             let isLogin = false;
             if (data.length >= 1) {
                 isLogin = true;
            }
             return { isLogin };
          }
          module.exports = service;
          //  ./dao/users.js      数据接口层:用来访问数据库,完成指定数据库操作
          const  usersModel = require("./models/usersModel");
          const dao = {}
          dao.findUser = async (condition)=>{
             return await usersModel.find(condition);
          }
          module.exports = dao;

          //下面是其他的一些附加操作(模块化):

          //   ./dao/db.js     用来链接数据库的模块
          const mongoose = require('mongoose');
          const dbname = "f67";
          mongoose.connect(
           'mongodb://localhost/' + dbname,
          { useNewUrlParser: true, useUnifiedTopology: true }
          );
          const db = mongoose.connection;
          db.on('error', console.error.bind(console, 'connection error:'));
          db.once('open', function () {
           // we're connected!
           console.log("we're connected to " + dbname);
          });

          //   ./dao/models/usersModel   与数据库对应的某一个集合的模型
          const mongoose  = require("mongoose");
          const usersSchema = mongoose.Schema({
             username: String,
             password: String
          }, { versionKey: false });
          const usersModel = mongoose.model('users', usersSchema);//users集合
          module.exports = usersModel;

        三层架构

      使用mongodb

      1. 路由的使用:(下面统一以根目录为基准)

        //./app.js
        var studentsRouter = require('./routes/students');
        app.use('/students', studentsRouter); //这是一级路由
        //./routes/students.js
        var express = require('express');
        var router = express.Router();

        router.get('/get', function(req, res, next) {//这是二级路由
         res.send('students respond with a resource');
        });

        module.exports = router;

         

      express的路由以及中间件

       

  • 相关阅读:
    JSON特殊字符的处理
    java中高并发和高响应解决方法
    对redis深入理解
    对java中arraylist深入理解
    Redis的字典扩容与ConcurrentHashMap的扩容策略比较
    PHP压缩上传图片
    windows 平台 php_Imagick 拓展遇到的那些坑!
    windows7下php5.4成功安装imageMagick,及解决php imagick常见错误问题。(phpinfo中显示不出来是因为:1.imagick软件本身、php本身、php扩展三方版本要一致,2.需要把CORE_RL_*.dll多个文件放到/php/目录下面)
    php使用imagick模块实现图片缩放、裁剪、压缩示例
    文件打包,下载之使用PHP自带的ZipArchive压缩文件并下载打包好的文件
  • 原文地址:https://www.cnblogs.com/zzr666/p/13141660.html
Copyright © 2011-2022 走看看