马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
那什么是node.js呢? 和JavaScript又是什么关系呢?
- node.js 提供了 JavaScript的运行情况。
- 当JavaScript作为后端开发语言来说, 需要在node.js的情况上进行
- 当JavaScript作为前端开发语言来说,需要在浏览器的情况上进行
Node.js 可以做什么?
- node.js作为一个JavaScript的运行情况,提供了基础的功能和API:(基于node.js衍生了许多框架)
- Express框架 (快速构建web应用)
- Electron 框架 (快速构建跨平台的桌面应用)
- restify 框架 (快速构建API接口项目)
- 读写操作数据库,创建实用的命令行工具辅助前端开发
读取文件
- 浏览器中的js没有文件操作的能力的
但是node中的js具有文件操作的能力
- fs是 FileSystemde 的简写,文件系统的意思
在node中进行文件操作,就必须引入fs焦点模块
fs焦点模块 ,提供了所有文件操作的相干API
例如:fs.readFile方法读取文件
- require方法加载fs焦点模块
var fs=require(‘fs’)
- 读取文件
第一个参数读取文件路径
第二个参数是一个回调函数
- error
假如读取失败,error就是错误对象
假如读取成功,error就是null
- date
假如读取失败,date就是untifined(没有数据)
假如读取成功,date就是读取到的数据
- fs.readFile('./hello.tex',function(error,date){
- // 默认存储的是2进制,然后转化为16进制
- // <Buffer 68 65 6c 6c 6f 2c 77 6f 72 6c 64 21 21 21>
- // 通过toString方法把其转化为认识的字符
- console.log(date);
- console.log(date.toString());
复制代码- // 注释:通过判断 error 是否存在,确认文件读取是否出错
复制代码- if (error) {
- // 如果 error 有值(说明读取失败),打印错误提示
- console.log('读取文件失败了')
- } else {
- // 如果 error 为 null(说明读取成功),打印文件内容(data 是文件内容的 Buffer/字符串)
- console.log(data.toString())
- }
- })
复制代码 写文件
- 写文件
第一个参数:文件路径
第一个参数:文件内容
第二个参数:回调函数
- error
- 成功:error就是null
文件写入成功
- 失败:error就是错误对象
文件写入失败
- var fs=require('fs')
- fs.writeFile('./你好.md','大家好,我是node',function(error){
- console.log('成功')
- })
复制代码 request
- request哀求变乱处理函数,接受2个参数:
- Request哀求对象
哀求对象可以用来获取客户端的一些哀求信息,例如哀求路径
- Request响应对象
响应对象可以给客户端发送响应消息
- respose对象有一个方法:write 可以用来给客户端发送响应数据
write可以利用多次,但末了一定要用end来竣事响应。否则客户端一直响应
- var http=require('http');
- var server=http.createServer();
- server.on('request',function(request,response){
- console.log('收到请求,请求路径为'+request.url)
- response.write('hello')
- response.write('node')
- response.end()
- })
- server.listen(3000,function(){
- console.log('启动成功,通过http://127.0.0.1:3000/访问')
- })
复制代码 url
根据差别的哀求路径发送的差别的响应结果
- 获取哀求路径
response.url获取端口后的的那一部分路径
也就是说所有的url都以 /开头
- 判断路径返反响应
- var http=require('http')
- var server=http.createServer()
- server.on('request',function(request,response){
- console.log(request.url)
- // response.end('hello,node')
- // response.write('hello')
- // response.write('node')
- // response.end()
- var url=request.url
- if(url==='/'){
- response.end('index paga')
- }else if(url==='/login'){
- response.end('login paga')
- }else if(url==='/products'){
- // 设置响应头:明确使用 UTF-8 编码的 JSON
- response.setHeader('Content-Type', 'application/json; charset=utf-8');
- var products=[
- {
- name:'苹果',
- price:888,
- } ,{
- name:'荔枝',
- price:9999,
- }
- ]
- response.end(JSON.stringify(products))
- }else{
- response.end('404')
- }
- })
- server.listen(80,function(){
- console.log('...')
- })
复制代码 http
焦点模块 http
http帮你创建编写服务器的
- 加载http模块
var http=require(‘http’)
- 利用http。createServer()方法创建一个Web 服务器
返回一个Server实例
- var server=http.createServer();
复制代码 3.提供服务
1. 发哀求
2. 接受哀求
3. 处理哀求
4. 给个反馈(发送响应)
当客户端哀求过来时,就会自动触发request 哀求变乱,然后执行第2个参数:回调函数
- server.on('request',function(){
- console.log('收到请求')
- })
复制代码 4.绑定端口号,启动服务器
- server.listen(3000,function(){
- console.log('启动成功,通过http://127.0.0.1:3000/访问')
- })
复制代码 |