美文网首页
2021-09-14 NodeJS和Express框架基础

2021-09-14 NodeJS和Express框架基础

作者: alicemum | 来源:发表于2021-09-15 10:51 被阅读0次

    什么是NodeJS

    Nodejs是一个让JavaScript运行在服务端的开发平台,它可用于方便地搭建响应速度快、易于扩展的网络应用。”

    NodeJS应用场景

    1、网站后台
    2、 可以做WEB前端开发
    3、 可以做桌面应用
    4、 可以做游戏
    5、 可以做机器学习
    。。。。。。
    除了底层的基本上啥都能做,
    道理和PYTHON类似,只要有库支持 基本上都能做

    NodeJS的安装

    1、中文网: http://nodejs.cn/
    2、nodejs-v14版本不支持win7
    3、安装成功后,在任意位置打开CMD (shift+右键-->在此处打开命令窗口)
    4、 node -v (显示版本号,即成功)
    5、也可以在VSCode中, Ctrl+` , 打开终端,输入命令

    NodeJS包管理工具npm

    NPM是随同NodeJS一起安装的包管理工具,允许用户从NPM服务器下载别人编写的第三方包

    npm -v   // 测试npm是否安装成功
    

    包管理工具 cnpm

    淘宝团队做的国内镜像,因为npm的服务器位于国外可能会影响安装。淘宝镜像与官方同步频率目前为 10分钟 一次以保证尽量与官方服务同步。

    // 全局安装cnpm
    npm  install cnpm -g  
    
    // 或者用以下命令安装
    npm install cnpm -g --registry=https://registry.npm.taobao.org
    
    // 检测是否安装成功 
    cnpm -v
    

    如果在VScode中报错

    输入命令:set-ExecutjionPolicy RemoteSigned
    
    然后更改权限为A
    

    初始化Nodejs项目

    npm init 
    //或者快速初始化
    npm init -y 
    

    运行NodeJS文件

    1. 新建test.js
        var fs = require("fs")
        fs.readFile("./测试.txt",(err,data)=>{
            if (err){
                console.log(err);
            }else{
                console.log(data.toString());
            }
        })
    
    1. 运行test.js
    node test.js
    

    可在控制台打印文件内容

    1. test.js有改动,必须重新运行
    2. 也可以全局安装nodemon第三方包,来监听test.js
    npm i nodemon -g  //安装
    nodemon test.js   //运行并监听test.js
    

    Express框架

    官网: https://www.expressjs.com.cn/
    基于 Node.js 平台,快速、开放、极简的 Web 开发框架

    安装Express框架

     npm i express -S
     express -v
    

    创建web服务并运行

    1、 在根目录创建app.js,和文件夹public

    app.js搭建后端服务
    public存放静态文件(html,css,js,images等资源)

    2、app.js

        const express = require("express")
    
        //实例化一个express的应用
        const app = express()
    
        //定义服务器监听的端口
        const port = 3000
    
        //托管静态资源 (public存放静态资源文件)
        app.use(express.static("public"))
    
        app.get("/goods",function(req,res){
            res.send({
                id: 1,
                name: 2
            })
        })
    
        app.listen(port,()=>{
            console.log(`服务器正在监听: localhost:${port}`);
        })
    

    数据库访问

    安装mysql模块

        npm i mysql
    

    连接数据库

    const mysql = require("mysql");
    let connection = mysql.createConnection({
        host: 'localhost',
        user: 'root',
        password: '',
        database: 'flowers',
        port: '3306'
    });
    
    // 实例的connect()方法将连接数据库
    connection.connect();
    
    

    查询所有商品

    app.get("/product", (req, res) => {
        let sql = `select * from midata order by Id asc`
        conn.query(sql,  function (err, result) {
            if (err) {
                console.log('查询数据库失败');
            } else {
                let data;
                if (result.length) {
                    data = {
                        code: 0,
                        list: result
                    }
                } else {
                    data = {
                        code: 1,
                        msg: '没有结果 '
                    }
                }
                res.send(data)
            }
        })
    })
    

    分页查询

    router.get("/product", (req, res) => {
        let { page } = req.query;
        const pageSize = 10;
        let start = (page - 1) * pageSize
        let sql = `select * from midata order by Id asc limit ?,?`
        conn.query(sql, [start, pageSize], function (err, result) {
            if (err) {
                console.log('查询数据库失败');
            } else {
                let data;
                if (result.length) {
                    data = {
                        code: 0,
                        list: result
                    }
                } else {
                    data = {
                        code: 1,
                        msg: '没有结果 '
                    }
                }
                res.send(data)
            }
        })
    })
    

    相关文章

      网友评论

          本文标题:2021-09-14 NodeJS和Express框架基础

          本文链接:https://www.haomeiwen.com/subject/nrkhgltx.html