001


001 Node初识

一、基本概念

1.定位

  • Node.js是进行服务端开发的,同类型的还有Java、PHP、Python、.Net等。
  • Node.js不是语言、库、框架,而是一个JavaScript运行环境,简而言之就是用来解析JavaScript代码
  • Node.js可以脱离浏览器运行。浏览器中的JavaScript包括ES、BOM、DOM,Node.js因为是干服务端的事,因此不包含BOM、DOM,只有ES和提供一些服务器级别的API

2.特性

  • 事件驱动
  • 非阻塞IO模型(异步)
  • 轻量和高效
  • 单线程

3.npm

放置了JavaScript相关的包,方便使用命令行快速下载包,类似于PHP中的composer。

4.B/S编程模型

Browser/Server,浏览器/服务器模式,Node作为学习这种编程模型的工具

5.模块化编程

JavaScript只能通过script标签来加载,Node中可以用import来加载

6.异步编程

  • 回调函数
  • Promise
  • async
  • generator

7.Express Web开发框架

二、安装与使用

官网下载后直接安装即可,cmd输入node有显示说明安装成功
使用命令行,定位到js代码对应的文件夹,输入node xxx文件名即可运行程序

1.读文件与写文件

//实现文件内容的读取
//使用浏览器就没办法识别require
//toString是将16进制代码转换为字符串
let fs = require('fs')
fs.readFile('./data/01.txt',function (error, data){
    console.log(data.toString())
});

ps.require是Node的一个方法,加载了fs模块

let fs = require('fs')
fs.writeFile('./data/02.txt','你好Node.js',function (error){
    console.log(error);
})

2.创建一个服务器

//1.使用require加载http模块
var http = require('http')

//2.使用http模块的createServer方法创建一个web服务器
var server = http.createServer()

//3.服务流程:发请求、接受请求、处理请求、给出反馈
//绑定端口号,启动服务器
server.listen(3000, function (){
    console.log('服务器已启动,可以使用http://127.0.0.1:3000/来访问')
})

//接受客户端的请求
server.on('request',function (){
    console.log('收到了客户端的请求了')
})

运行程序之后服务器启动,占用了cmd,当使用浏览器输入http://127.0.0.1:3000/后即向服务器发送了请求,浏览器窗口一直在转的原因是还没有给与响应。

服务器响应代码:即在上述server.on的回调函数中进行请求的处理形参包括request(请求对象),response(响应对象)

server.on('request',function (req, res){
    //显示用户输入的url
    console.log('收到了客户端的请求了,请求的地址是' + req.url);
    //使用response的write方法,给客户端发送响应数据,最后一定要用end来结束响应
    res.write('hello');
    res.end();
})

写完发现若输出中文会出现乱码就添加了一段res.setHeader(‘Content-type’, ‘application/json’),此外可以把输出的内容直接放在end后面即可
下面是优化后的代码

server.on('request',function (req, res){
    //用变量接受url,所有的url都是以“/”开头的
    const url = req.url;
    console.log('收到了客户端的请求了,请求的地址是' + url);
    var result;
    if (url === '/'){
        result = 'index';
    }
    else if (url === '/register'){
        result = '注册';
    }
    else if (url === '/login'){
        result = '登录';
    }
    else{
        result = '404 not find';
    }
    //防止中文出现乱码
    res.setHeader('Content-type', 'application/json')
	//给出反馈
    res.end(result);
})

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值