nodejs入门初见


一、nodejs的简介

1、百度百科定义:
node.js是一个让JavaScript运行在服务端的开发平台,它让JavaScript成为与PHP、Python、Perl、Ruby等服务端语言平起平坐的脚本语言,发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装。

2、其他人的理解:

  1. Node.js是让Javascript脱离浏览器运行在服务器的一个平台,不是语言;
  2. Node.js采用的Javascript引擎是来自Google Chrome的V8;
  3. 运行在浏览器外不用考虑头疼的Javascript兼容性问题;
  4. 采用单线程、异步IO与事件驱动的设计来实现高并发(异步事件也在一定程度上增加了开发和调试的难度);
  5. Node.js内建一个HTTP服务器,所以对于网站开发来说是一个好消息。

二、一个nodejs程序

新建一个demo文件夹,然后用vscode或其他编译器打开,进入终端初始化项目

npm init -y
git init //可省略

在demo文件夹下新建src文件夹,然后在src下建demo.js

//web 服务
// ajax-->api-->web server(nodejs)
const http = require('http');
const server = http.createServer((req,res)=>{
    res.end('hello')
})
server.listen(3000,'127.0.0.1',()=>{ //监听127.0.0.1:3000
    console.log('服务启动成功')
})

在根目录终端上启动项目,测试

 node ./src/demo.js

三、nodejs程序热部署

在项目根目录中启动终端,安装nodemon

npm install nodemon -D

修改 package.json 中的启动命令

"scripts": {
    "start": "nodemon src/app.js",//新增
    "start:node": "node src/app.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  }

通过增加 nodemon.json 配置 指定 特殊watch 的文件

{
    "watch":["./src/**/*.js"]
}

默认情况下监测所有文件,一旦有文件发生改动即自动重启服务,上述配置后只监测src文件夹下的js文件有没有发生改动。

在终端启动项目,测试

npm start

四、nodejs的express框架

什么是express ?
Express基于Node.js封装的,快速、开放、极简的 Node.js Web 开发框架。它通过中间件和路由让程序的组织管理变得更加容易;它提供了丰富的HTTP工具;它让动态视图的渲染变得更加容易;他还定义了一组可扩展的标准。

在项目根目录中启动终端,安装express

npm install express --S

一个 express 实例

const express = require('express');
const app = express();
app.get('/name/:age',(req,res)=>{  //get方法的接口
    let {age} = req.params;
    res.json({
        name:'tom',
        age
    })
})

app.post('/name',(req,res)=>{ //post方法的接口
    res.send('tom post')
})

app.listen(3000,()=>{
    console.log('server 启动成功')
})

五、express+mysql

安装sequelize并配置

npm install --save sequelize
npm install --save mysql2
npm install --save-dev sequelize-cli
npx sequelize-cli init

在配置文件config/config.json填写待连接的数据库

"development": {
    "username": "root",
    "password": "ych981203",
    "database": "express-demo",
    "host": "127.0.0.1",
    "dialect": "mysql"
  }

创建第一个模型(和迁移)

npx sequelize-cli model:generate --name User --attributes name:string
npx sequelize-cli db:migrate

一个实例:

const express = require('express');
const models = require('../models');//模型对象
const app = express();
app.get('/create',async (req,res)=>{
    let {name} = req.query;
    // promise user-->sequlize 对象
    let user = await models.User.create({
        name
    })
    console.log(user)
    res.json({
        message:'创建成功'
    })
})
app.get('/list',async (req,res)=>{
    let list =await models.User.findAll();
    res.json({
        list
    })
})

app.get('/detail/:id',async (req,res)=>{
    let {id} = req.params;
    let user =await models.User.findOne({
        where:{
            id
        }
    })
    res.json({
        user
    })
})
app.listen(3000,()=>{
    console.log("启动成功")
})


总结

node.js能让Javascript运行在服务端,让前端开发工程师也可以使用所学的Javascript来搭建服务器,提高开发的效率。另外运行在浏览器外不用考虑头疼的Javascript兼容性问题,方便了网站开发。node.js作为衡量前端工程师能力的标准之一,学习前端都有学习node.js的必要性。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值