文章目录
前言
随着人工智能的不断发展,编程学习这门技术也越来越重要一、node概念
1.node概念
Node.js是一个让JavaScript运行在服务器端的开发平台,它让JavaScript的触角伸到了服务器端,可 以与PHP、JSP、Python、Ruby平起平坐。
2.node特点
(1)单线程 (2)非阻塞I/O input/out (3) 事件驱动
3.node js和js区别
JavaScript是一门语言 node.js不是一门语言,也不是一种特殊的JavaScript方言 ,它仅仅就是用于运行普通JavaScript代码 的东西4.node repl环境
为了使开发者方便测试javascript代码,提供了一个名为REPL(Read-Eval-Print-Loop)的可交互式运行环境。
使用方法:
在命令行窗口中,输入“node”命令并按下回车键,即可进入REPL运行环境
ctrl+C 两次 可以退出 node repl 环境
5.node服务器和java服务器对比
node.js比Java更快 :
node.js开发快,运行的效率也算比较高,但是如果项目大了就容易乱,而且javascript不是静态类型的语言,要到运行时才知道类型错误,所以写的多了之后免不了会出现光知道有错但是找不到哪儿错的情况,所以测试就得些的更好更详细。
(1) java开发慢,但是如果项目大、复杂的话,用java就不容易乱,管理起来比node.js省。
(2)Node.js 前后端都采用Javascript,代表未来发展的趋势,而java则是现在的最流行的服务器端编程语言。
(3)Node.js和Java EE——一种是解释语言,一种是编译语言.
6.使用node搭建简单的web服务器
// 引用模块
var http =require("http"); // require --- 请求哪个模块
//创建一个服务器,回调函数表示接收到请求之后做的事
var server=http.createServer(
function(req,res){
res.end("哈哈 node .js")
}
)
//监听端口
server.listen(3000,'127.0.0.1',function(){
console.log('服务器启动成功')
})
7.什么是服务器、端口号、以及req和res
服务器:服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务和保障服务的能力
端口号:所谓的端口,就好像是门牌号一样,客户端可以通过ip地址找到对应的服务器端,但是服务器端是有很多端口的,每个应用程序对应一个端口号,通过类似门牌号的端口号,客户端才能真正的访问到该服务器。为了对端口进行区分,将每个端口进行了编号,这就是端口号
request(req): 请求对象:客户端(浏览器端)向服务端发送请求
response(res): 响应对象:服务端响应客户端的请求
8.fs模块
在 NodeJS 中,所有与文件操作都是通过 fs 核心模块来实现的,包括文件目录的创建、删除、查询以 及文件的读取和写入。
9.同步读取文件
方法:readFileSync()
var fs =require('fs'); //引入 fs 模块
//同步读取文件
var data = fs.readFileSync('../01.txt','utf-8'); //同步读取
console.log(data);// data 就是读取到的文件内容
10.异步读取文件
方法:readFile()
var fs =require('fs'); //引入 fs 模块
// 异步读取文件
fs.readFile('../01.txt','utf-8',function(err,data){
if(err) throw err; // 如果文件读取失败 抛出错误 不再执行
console.log('文件读取成功'+data);
});
11.同步写入文件
方法:writeFileSync()
var fs= require('fs'); //引入 fs 模块
//同步写入内容
console.log(1);
fs.writeFileSync('../02.txt','加油!武汉!','utf8');
console.log(2)
var data = fs.readFileSync('../02.txt','utf8');
console.log(data);
console.log(3)
// 异步读取开始---->同步读取开始------>同步读取结束------>异步读取结束
12.异步写入文件
方法:writeFile()
var fs= require('fs'); //引入 fs 模块
// 异步写入
fs.writeFile('../02.txt','加油1909A',function(err){
//异步写入方法
if(!err){
fs.readFile('../02.txt','utf8',function(err,data){
// 异步读取文件的方法
console.log('写入成功后的文件内容为:'+data)
})
}
});
13.同步和异步的区别
同步:在没做完一件事之前 不允许做下一件事。 同步的思想是所有的操作都做完,才返回给用户。
异步:基于回调函数 ,第一件事放在回调函数(内存)中运行,接着处理下一件事。当客户端发送给服务端请求时,在等待服务端响应的时候,客户端可以做其他的事情,这样 节约了时间,提高了效率
同步阻塞代码,性能不好,异步回调函数嵌套性能好,但是维护性差,我们想要具备性能好,代码可读 性又好可以使用现在 NodeJS 中正流行的 async/await 的方式进行异步编程
14.怎样获取用户请求路径
req.url
15.res.write() 与 res.end()
res.write() 给浏览器响应写入的内容
res.end() 浏览器响应结束
16.如何设置响应头,他们的区别及写法是什么
设置响应头两种方法:
res.setHeader()
res.writeHead()
区别:
writeHead可以设置http返回状态码,多个http响应头。但是setHeader只针对单一属性的设置
res.setHeader()的写法:
res.setHeader('Content-type', 'text/plain;charset=utf-8')
res.writeHead()的写法:
res.writeHead(200, { 'Content-type': 'text/html;charset=utf-8' })
17.node适合开发的应用场景
I/O越多,越适合!计算越多,越不适合!
总结
简单的说 Node.js 就是运行在服务端的 JavaScript。
Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。
Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。
1.编写高性能网络服务器的javascript工具包(用js开发服务端程序)
2.单线程、异步、事件驱动