zoukankan      html  css  js  c++  java
  • node从搭建运行项目整体流程

    1. 初始化配置基本信息:

      npm init (自定义配置)

      npm init -y (一切配置采用默认值)

       在当前目录产生package.json文件,有一个dependencies用来记录该项目所有依赖包

    2.搭建服务器(在入口文件中app.js)

      使用express框架(npm i express 下载该模块)

    //加载express
    const express = require('express')
    //创建express服务器
    const app = express()
    //开启服务器(端口号随意此处为3000)
    const.listen(3000, () => {
         //搭建成功后的提示信息
        console.log('server is running...)
    }    

    //托管静态资源
    app.use('/assets',express.static('./view/assets'))
    app.use('/node_modules', express.static('./node_modules'));

    //注册body-parser中间件(body-parse用来专门处理post请求的数据)
    const bp = require('body-parser');
    app.use(bp.urlencoded({extended: false}));

    //注册中间件
    //配置模板引擎
    app.engine('html', require('express-art-template'));

    //4. 加载路由模块
    const router = require('./router.js');
    app.use(router);
     

      使用系统模块提供的http模块

    const http = require('http')
    //创建服务器实例
    const server = http.createServer()
    //开启服务
    server.listen(3000, ()=>{
        console.log('server  is  reunning...')
    }
    //客户端请求事件,监听客户端请求
    //当用户请求require页时,在页面上返回'hellow'
    server.on('request', (req, res) => {
        res.end('hellow')
    }

    3. 使用mysql模块,封装数据库文件(db.js)

      mysql是一个第三方模块,提供对数据库增删改

    const mysql = require('mysql')
    //创建连接对象
    const conn = mysql.createConnection({
      host: '127.0.0.1',
      user: 'root',
      password: 'root',
      port: 3333,	//	端口号
      database: 'aaa'  //要操作的数据库
    })
    //连接mysql服务器
    conn.connect();
    //执行sql语句
    const sql = 'select * from hero'
    //添加insert into hero value(null, '武则天','朕很中意你','2018-2-2')
    //删除insert into hero value(null, '武则天','朕很中意你','2018-2-2')
    //修改update hero set name='张三', content='大傻子' where id = 1
    
    conn.query(sql,(err,result,field)=>{
      if(err){
        return console.log(err)
      } 
      console.log(result)
    })
    //导出
    module.exports = conn

      通配符模式

    const sql = "update hero set ? where hero_id=?"
    const obj = {
        hero_name: '圣诞快乐',
        hero_age: 22
    }
    conn.query(sql,[obj,2],(err,result)=>{
        //。。。。
    }

    4. 路由模块

    const express = require('express')
    const path = require('path')
    const db = require('./db.js')
    
    const router = express.Router()
    //加载控制器
    // const jq_c = require('./jq_controller.js')
    //监听浏览器请求
    //美食
    router.get('/meishi',(req, res) => {
        const sql = 'select * from MS'
        db.query(sql, (err, result) => {
            if(err){
                console.log(err)
            }
            console.log(result)
            res.render(path.join(__dirname, 'view/jqhtml','meishi.html'),{list: result})
        })
        // res.end('sadasdasd')
    })
    
    module.exports = router;

    5.运行

    命令窗口node app.js

  • 相关阅读:
    CodeForces Gym 100500A A. Poetry Challenge DFS
    CDOJ 486 Good Morning 傻逼题
    CDOJ 483 Data Structure Problem DFS
    CDOJ 482 Charitable Exchange bfs
    CDOJ 481 Apparent Magnitude 水题
    Codeforces Gym 100637G G. #TheDress 暴力
    Gym 100637F F. The Pool for Lucky Ones 暴力
    Codeforces Gym 100637B B. Lunch 找规律
    Codeforces Gym 100637A A. Nano alarm-clocks 前缀和
    TC SRM 663 div2 B AABB 逆推
  • 原文地址:https://www.cnblogs.com/xhrr/p/10502208.html
Copyright © 2011-2022 走看看