node.js 学习笔记(二)简单使用

上次我们介绍了node 的定义和作用以及怎么安装,这次说说它的模块化系统

一、如何使用node执行js文件?

可以用cmd或git base here执行

先建一个简单的js文件,输入如下

var foo = 'hello nodejs'

console.log(foo)

然后定位到该文件位置打开终端,输入 node helloworld.js——helloworld.js是文件名,操作过程如下图

注:文件名不能起名为node.js;尽量避免使用中文命名

 

二、在 Node 中,采用 EcmaScript 进行编码,没有 BOM、DOM

新建js文件No BOM and DOM.js,里面代码如下

console.log(window);
console.log(document)

运行

 

 三、node读取文件

我们知道在 Node 中,采用 EcmaScript 进行编码,没有 BOM、DOM和浏览器中的 JavaScript 不一样,但它能操作文件。

node提供了几种核心模块,其中 fs(file-system 的简写,就是文件系统的意思)就提供了所有的文件操作相关的 API,这里先简单说下

使用步骤如下:

3.1使用 require 方法加载 fs 核心模块

var fs = require('fs')

3.2读取文件

fs.readFile(读取的文件路径,回调函数(error,data))

3..3结果

成功: data 数据;error null

失败:data undefined没有数据; error 错误对象

3.4 运行

js文件代码

var fs = require('fs');

fs.readFile('./data/a.txt', function (error, data) {
        console.log(data);
  })

 

 

 解析:因为文件中存储的其实都是二进制数据 0 1,这里把二进制转换成十六进制了,可以通过tostring()转换下,

新的js文件代码

var fs = require('fs');

fs.readFile('./data/a.txt', function (error, data) {
        console.log(data.toString());
  })

 

 四、写入文件

write_wenjian.js

var fs = require('fs')

// 第一个参数:文件路径
// 第二个参数:文件内容
// 第三个参数:回调函数

// 成功:
// 文件写入成功
// error 是 null
// 失败:
// 文件写入失败
// error 就是错误对象


fs.writeFile('./data/b.txt', '大家好,给大家介绍一下,我是Node.js', function (error) {
   console.log('文件写入成功');
   console.log(error);
  if (error) {
    console.log('写入失败');
  } else {
    console.log('写入成功了');
  }
})

运行

 

 我们可以看见在data文件夹多了

 

 

五、核心模块http

node通过http模块构建一个web服务器,

一般而言服务器都是停供服务,停供对数据的服务:

过程是从客户端发请求——>服务器接收请求——>服务器处理请求——>发送响应回客户端

先来个简单点的

// 1.加载 http 核心模块

var
http = require('http'); // 2. 使用 http.createServer() 方法创建一个 Web 服务器 // 返回一个 Server 实例 var server = http.createServer(); // 3. 注册 request 请求事件 // 当客户端请求过来,就会自动触发服务器的 request 请求事件,然后执行第二个参数:回调处理函数 server.on('request', function () { console.log('收到客户端的请求了'); }) // 4. 绑定端口号,启动服务器 server.listen(3000, function () { console.log('服务器启动成功了,可以通过 http://127.0.0.1:8080/ 来进行访问'); })

运行:

 

 高级一点的写法,但不能根据不同的请求路径发送不同的响应结果

var http = require('http')

var server = http.createServer()

// request 请求事件处理函数,需要接收两个参数:
//    Request 请求对象
//        请求对象可以用来获取客户端的一些请求信息,例如请求路径
//    Response 响应对象
//        响应对象可以用来给客户端发送响应消息
server.on('request', function (request, response) {
 
  console.log('收到客户端的请求了,请求路径是:' + request.url)

  // response 对象有一个方法:write 可以用来给客户端发送响应数据
  // write 可以使用多次,但是最后一定要使用 end 来结束响应,否则客户端会一直等待
  response.write('hello')
  response.write(' nodejs')

  // 告诉客户端,我的话说完了,你可以呈递给用户了
  response.end()
})

server.listen(3000, function () {
  console.log('服务器启动成功了,可以通过 http://127.0.0.1:3000/ 来进行访问')
})

运行

 

 

 

 如图,不过路径怎么改,显示永远不变

所以,用下面这种

 

var http = require('http')

// 1. 创建 Server
var server = http.createServer()

// 2. 监听 request 请求事件,设置请求处理函数
server.on('request', function (req, res) {
  console.log('收到请求了,请求路径是:' + req.url)
  console.log('请求我的客户端的地址是:', req.socket.remoteAddress, req.socket.remotePort)
  var url = req.url

  if (url === '/') {
    res.end('index page')
  } else if (url === '/login') {
    res.end('login page')
  } else if (url === '/products') {
    var products = [{
        name: '苹果 X',
        price: 8888
      },
      {
        name: '菠萝 X',
        price: 5000
      },
      {
        name: '小辣椒 X',
        price: 1999
      }
    ]


    res.end(JSON.stringify(products))
  } else {
    res.end('404 Not Found.')
  }
})

// 3. 绑定端口号,启动服务
server.listen(3000, function () {
  console.log('服务器启动成功,可以访问了。。。')
})

运行

 

 

注:响应内容只能是二进制数据或者字符串

数字、对象、数组、布尔值等需进行转化。

转载于:https://www.cnblogs.com/smile-xin/p/11599529.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值