浅谈node.js 从入门到放弃 。

1. 简单了解一下node, node不是一个框架是一个库,官方是这样说的 Node是一个基于Chrome JavaScript 运行在服务端的一个平台,当线程的非阻塞的i/o事件驱动 。

2.会了Node.js 你就可以自己开发项目了 ,例如 服务端渲染的项目 ,也可以是 至于 Vue + Node - express 这样B/S的项目了。、

3.安装Node  https://nodejs.org/en/  自己下载安装

 

 

 

 安装成功在CMD 输入 npm -V 就可以看到版本好了。

 

Node 都一些模块和npm 包

1.path  操作文件的 .

用法都要 用 require 引进来 

var fs=require(“fs)

fs模快可以读写文件 是 node内置的模块

读文件 readFile 这个函数的第一个参数是 要读取文件的 url (必填),第二参数是设置获取数据的格式默认是二进制(选填)我们可以设置成"utf8'',也可以不设置把data转换成Json的字符串也可以的

  fs.readFile("../db.json","utf8",function(err,data){
    console.log(data)
    res.render('index.html',{
      data
    })
  })

写文件 的函数是 writeFile

 fs.writeFile(filename, data, [options], [callback(err)])  filename :文件的名称(没有文件会自动创建)    data : 将要写入的内容,可以使字符串 或 buffer数据

fs.writeFile('message.txt', 'Hello Node', function (err) {
  if (err) throw err;
  console.log('It\'s saved!');
});

 

2.  非Node 内置的第三包 express 模块 

 1. 安装 

npm install --save express 

    2.导入

require  app   =  new express()

这个 包 我们可以用来运行node在服务器和 写 接口

例如我们在本地 监听 3000 的服务 app.js

var express = require('express')
var app = express()

var server = app.listen(3000, function () {
  var host = server.address().address
  var port = server.address().port
  console.log('应用实例', host, port)
})

启动 Node 服务 在app.js 所在文件夹 打开CMD 命令 输入 node app.js 回车

 

 

 然后在浏览器我们就可以访问一下这样的一个地址,当然什么都没有 

下来我们直接用get ,post ,delet put 等的服务

app.get('/', function (req, res) {
  console.log(req.url, '请求响应')
  //本地json
  fs.readFile('./data/city.json', 'utf-8', function (err, data) {
    //  console.log(data.toString(),"异步读取")
    if (err) {
      res.send('文件读取失败')
    } else {
      res.send(data)
    }
  })

})

 在访问这个地址 ,我们就可以在CMD里面看到 访问后打印的data 了

 app.get() 的第一个参数 / 表示所有的 127.0.0.1:3000 后面默认就是跟这 / 

我们也可以 /home  访问的url 就变成了  

 

 

 

app.get('/home', function (req, res) {
  console.log(req.url, '请求响应')
  //本地json
  fs.readFile('./data/city.json', 'utf-8', function (err, data) {
    //  console.log(data.toString(),"异步读取")
    if (err) {
      res.send('文件读取失败')
    } else {
      res.send(data)
    }
  })

})

req : 表示request (请求) res : response(响应请求)  

 

router.js (路由管理模块) 我们把响应 get,post 等等 拆分到一个文件 这样我们好分模块管理 

 在Node 里面模块之间的联系 靠的是 exprot (暴露) 和 require (引入模块)

路由用到express的Router 实例

  1. 创建路由容器

var router = express.Router()

 

  1. 把路由挂到 router 容器中

router.get("/",function(res,req){
    
})

 

  1. 报router向外暴露

modlue.exports = router

 

app.js

  1. 导入路由文件

var router  = require("./router ")

 

  1. 把router 用app.use挂载

app.use(router)

 

 

静态化文件夹


 

  1. 第一个参数(可有可无,表示要静态化的文件夹名称,不写默认是 public,地址栏默认的(public)不用加上,更改的要加上)

app.use(“/public/”,express.static("./public"))

 

atr-templat


 

  1. 安装

  2. 配置

  3. app.engine('html', require('express-art-template'));
    npm install --save art-template
    npm install --save express-art-template
    app.get('/404', function (req, res) {
      // res.set('Content-Type', 'text/html');
      res.render("404.html",{
        data:"这个是传过去的参数"
      })
    })

    可以在 客户端渲染 html 页面

 

 

posted @ 2020-05-15 11:48  我爱小番茄  阅读(679)  评论(0编辑  收藏  举报
2 3
4