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

  • 相关阅读:
    B+树的Copy-on-Write设计
    so库链接和运行时选择哪个路径下的库?
    Xapian索引-文档检索过程分析之匹配百分比
    Xapian索引-文档检索过程分析
    Xapian的内存索引-添加文档
    Xapian的内存索引
    Xapian使用入门
    一个std::sort 自定义比较排序函数 crash的分析过程
    编译GCC4.8.2
    使用C++11的一点总结
  • 原文地址:https://www.cnblogs.com/xhrr/p/10502208.html
Copyright © 2011-2022 走看看