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

Posted 阿灿的阿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅谈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 页面

 

 

以上是关于浅谈node.js 从入门到放弃 。的主要内容,如果未能解决你的问题,请参考以下文章

node.js从入门到放弃《什么是node.js》

node.js从入门到放弃

node.js从入门到放弃

node.js从入门到菜鸟——资源无法载入?你需要学会地址解析

浅谈 Node.js 热更新

淘宝前端团队:浅谈 Node.js 和 PHP 进程管理