1.初识Node.js
Node.js基础知识大汇总
1.下载并安装npm,检测安装是否成功(在命令行输入node -v,看是否会输出对应版本号)
2.写一个hello world 程序。
(1).打开notepad,新建一个.js文件,在里面输入代码:
var f="hello world"
console.log(f)
(2).在命令行切换到代码所在位置,输入node 文件全名 即可解释执行代码
3.体验一下使用node.js读写文件
var fs=require('fs')//require类似c++里面的include,导入读取文件fs核心模块,里面包含读取文件相关的API
fs.readFile("文件路径名字",function(error,data){//readFile函数第一个参数是文件路径名,第二个参数是一个回调函数,里面包含两个参数error,data
console.log(data.toString())//error是错误对象,读取成功则为null,data是文件内容,读取失败为null,成功则读出为二进制,可以用.toString函数转换
})
fs,writeFile("要写入的文件路径",“写入的内容”,function(error){//function是回调函数,里面包含写入失败的错误信息
//执行完会调用此函数,可以根据error判断是否成功
})
4.体验一下node.js实现简单的http服务
var http=require('http')
var server=http.createServer()//返回一个Server实例:提供服务包含:发送/接收/处理/反馈请求,注册request事件
server.on('request',function(request,response){//注册request事件,当客户端发送请求过来,就会触发request事件,自动执行回调函数
//响应请求的代码,function中的request,response和java里的功能类似,request.url 获得请求的路径/index.html等类似
//,response有一个write方法,可以向客户端发送响应数据,可以多次使用,最后一定要用end结束响应,否则客户端会一直等待
response.write('11111')
response.write('22222')
response.end()
})
server.listen(3000,function(){
//对方请求过来的回调函数
})//绑定端口号,启动服务器
5.改良版的HTTP服务
var http=require('http')
var server=http.createServer()
server.on('request',function(request,response){
var url=request.url//获取的是端口号之后的那部分路径,也就是所有的路径都是以‘/’开头
if(url==='/'){
response.end('index jsp')
}else if(url==='/login'){
response.end('login jsp')//end函数里面只能传入字符串和二进制,其他类型的需要调用相应的函数进行转换
}
})
server.listen(3000,function(){
console.log('connect in ')
})
6.Node.js中的模块基础知识
require这个方法的作用是用来加载模块
在node中模块大体有这几种:
拥有具体名字的核心模块,如fs,http
用户自定义的文件模块
相对路径必须加./
后缀名可以省略a.js
console.log('a start')
require('./b')
console.log(foo)//报错,无法获得b中的foo
console.log('a end')
b.js
consloe.log('hello world')
var foo='111'
在Node中没有全局作用域,只有模块作用域,内部与外部不能相互访问,默认都是封闭的。要想相互进行通信,可以使用exports对象
exports对象默认是一个空对象,可以将需要提供给外部的对象挂载在exports上
a.js
console.log('a start')
var b=require('./b')
console.log(b.foo)
consloe.log(b.add(1,2))
console.log('a end')
b.js
consloe.log('hello world')
var foo='111'
exports.add=function(a,b){
return a+b;
}
exports.foo=foo
7.响应内容类型
var http=require('http')
var fs=require('fs')
var server=http.createServer('request',function(req,res){
var url=req.url
res.setHeader('Content-Type','text/plain;charset=utf-8')//加上这段后可以解决乱码现象,text/plain是根据显示内容来得出的,若是HTML类型,则为text/html
//有关内容查询网址(tool.oschina.net)
res.end('hello 中国')//会出现中文乱码,数据默认的格式是utf-8,而浏览器的格式是gbk
if(url==='/'){
fs.readFile('./index.html',function(err,data){
if(err){
res.setHeader('Content-Type','text/plain;charset=utf-8')
res.end('访问失败!')}
else{
res.setHeader('Content-Type','text/html';charset=utf-8')
res.end(data)
}}}
})
1.初识Node.js的更多相关文章
- 初识node.js(通过npm下载项目依赖的包的过程)
一.初识node.js 简单的说Node.js 就是运行在服务器端的JavaScript. Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台. Node.js是一个事 ...
- Node.js之路【第一篇】初识Node.js
什么是Node.js 1.Node.js就是运行在服务端的JavaScrip. 2.Node.js是一个基于Chrome JavaScrip运行时简历的一个平台. 3.Node.js是一个非阻塞I/O ...
- 初识node.js
Node.js不是一种语言:不是框架:也不是工具.它是用于运行基于JavaScript应用程序的运行时环境.
- .NET程序员也学Node.js——初识Node.js
清明在石门休了八天假,一眨眼,4月又到中旬了...看到.NET在天朝彻底沦陷而又无能为力,我开始尝试去学习一些新的东西来充实自己,我自然是打死不会去学java的,没有为什么,于是乎,最近开始学习一些前 ...
- Node.js实战项目学习系列(1) 初识Node.js
前言 一直想好好学习node.js都是半途而废的状态,这次沉下心来,想好好的学习下node.js.打算写一个系列的文章大概10几篇文章,会一直以实际案例作为贯穿的学习. 什么是node Node.js ...
- 深入浅出Node.js(一) - 初识Node.js
1.Node.js将Javascript解决不确定性所使用的事件驱动方式引入了进来,因为JS是一门事件驱动的语言,旨在能够对外界的事件作出响应; 2.Node.js中,所有的有关异步的操作,都在同步操 ...
- 【Node.js】初识Node.js
因组里项目需要,我和另外一名同事要学习Node.js.之前接触过Javascript,都是前台处理html时用到,现在要用Javascript做后端,学习Node.js,用一段时间专心学习一门新技术, ...
- 初识Node.js之Node与java作为后台服务器的对比
> 文章原创于公众号:程序猿周先森.本平台不定时更新,喜欢我的文章,欢迎关注我的微信公众号. ![file](https://img2018.cnblogs.com/blog/830272/20 ...
- 前端(Node.js)(1)-- 初识Node.js
1.认识 Node.js 诞生.发展.应用现状.生态圈等方面 1.1. 2008年 RyanDahl的目标是创建一个易扩展.适用于现代Web应用通信的服务器平台 1.2.国内外的应用情况 Linked ...
随机推荐
- 支付宝沙箱测试-ALI40247
支付宝快速接入文档 测试支付宝APP支付时碰到ALI40247问题 前提:服务端采用沙箱测试. 关于沙箱 如何接入沙箱 沙箱环境是开放平台提供给开发者调试接口的环境,具体操作步骤见沙箱接入指南. Ap ...
- Codeforces Round #527 (Div. 3) C. Prefixes and Suffixes
题目链接 题意:给你一个长度n,还有2*n-2个字符串,长度相同的字符串一个数前缀一个是后缀,让你把每个串标一下是前缀还是后缀,输出任意解即可. 思路;因为不知道前缀还是后缀所以只能搜,但可以肯定的是 ...
- Ubuntu通过ADB连接手机
参考 ubuntu14.04 下android studio连接手机 安装 adb $sudo apt install adb $sudo lsusb 得到ID为 Bus Device : ID 12 ...
- java程序设计习题总结
---恢复内容开始--- main()方法的参数名可以改变:main()方法的参数个数不可以改变. 当一个程序没有main()方法是,是可以编译通过的,但是不能给运行,因为找不到一个主函数入口. 标识 ...
- win10只有edge浏览器能上网的解决方法
问题描述:电脑就只有edge浏览器和自带的邮件可以上网,但是QQ Chrome,360浏览器都无法上网: 解决方法:打开命令提示符(管理员),执行netsh winsock reset,重启系统就好了 ...
- 清北学堂学习总结day2
今天是钟皓曦大佬讲课,先来膜一波 %%%%% •数论 数论是这次培训的一个重点,那么什么是数论呢? 数论是研究整数性质的东西,所以理论上day2不会涉及小数QwQ (切入正题) •整除性: 设a, ...
- CentOS7中启动Chrome报错ERROR:zygote_host_impl_linux.cc
网上查的解决了问题 1. 需要安装libexif 说明我已经安装了libexif 2. 从安全角度考虑,Chrome不应在root环境下运行,如果某些原因必须以root身份运行Chrome,可以运行下 ...
- session前后台交互
下面是需求需要,不同的人群进来显示不同,但是还必须是这个走到哪都的存在,不能说点击别的页面,下面红框处的数据就没有了,必须是存在的并且登陆的类型不一样,显示的也不一样,开始的时候想到的是直接调用方法, ...
- html 文字少则居中多则居左
<!DOCTYPE html> <html> <head> <link rel="stylesheet" href="index ...
- python学习记录20190122_增量赋值
python中的增量赋值 一,在python中a=a+b和a+=b有区别吗 **1,对可变的数据类型 a=[1,2,3]print(id(a)) #1602469350792b=[4,5]a=a+bp ...