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的更多相关文章

  1. 初识node.js(通过npm下载项目依赖的包的过程)

    一.初识node.js 简单的说Node.js 就是运行在服务器端的JavaScript. Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台. Node.js是一个事 ...

  2. Node.js之路【第一篇】初识Node.js

    什么是Node.js 1.Node.js就是运行在服务端的JavaScrip. 2.Node.js是一个基于Chrome JavaScrip运行时简历的一个平台. 3.Node.js是一个非阻塞I/O ...

  3. 初识node.js

    Node.js不是一种语言:不是框架:也不是工具.它是用于运行基于JavaScript应用程序的运行时环境.

  4. .NET程序员也学Node.js——初识Node.js

    清明在石门休了八天假,一眨眼,4月又到中旬了...看到.NET在天朝彻底沦陷而又无能为力,我开始尝试去学习一些新的东西来充实自己,我自然是打死不会去学java的,没有为什么,于是乎,最近开始学习一些前 ...

  5. Node.js实战项目学习系列(1) 初识Node.js

    前言 一直想好好学习node.js都是半途而废的状态,这次沉下心来,想好好的学习下node.js.打算写一个系列的文章大概10几篇文章,会一直以实际案例作为贯穿的学习. 什么是node Node.js ...

  6. 深入浅出Node.js(一) - 初识Node.js

    1.Node.js将Javascript解决不确定性所使用的事件驱动方式引入了进来,因为JS是一门事件驱动的语言,旨在能够对外界的事件作出响应; 2.Node.js中,所有的有关异步的操作,都在同步操 ...

  7. 【Node.js】初识Node.js

    因组里项目需要,我和另外一名同事要学习Node.js.之前接触过Javascript,都是前台处理html时用到,现在要用Javascript做后端,学习Node.js,用一段时间专心学习一门新技术, ...

  8. 初识Node.js之Node与java作为后台服务器的对比

    > 文章原创于公众号:程序猿周先森.本平台不定时更新,喜欢我的文章,欢迎关注我的微信公众号. ![file](https://img2018.cnblogs.com/blog/830272/20 ...

  9. 前端(Node.js)(1)-- 初识Node.js

    1.认识 Node.js 诞生.发展.应用现状.生态圈等方面 1.1. 2008年 RyanDahl的目标是创建一个易扩展.适用于现代Web应用通信的服务器平台 1.2.国内外的应用情况 Linked ...

随机推荐

  1. XGBoost参数调优完全指南

    简介 如果你的预测模型表现得有些不尽如人意,那就用XGBoost吧.XGBoost算法现在已经成为很多数据工程师的重要武器.它是一种十分精致的算法,可以处理各种不规则的数据.构造一个使用XGBoost ...

  2. 小程序git发布

    微信小程序提交项目: 1.码云上创建一个项目 xiaochengxu 2.本地创建一个文件夹,然后在控制台使用 cd 文件夹名字 (将文件拉到控制台) 3.使用 git init 命令 ,初始化一个g ...

  3. Ajax数据爬取

    Ajax的基本原理 以菜鸟教程的代码为例: XMLHTTPRequest对象是JS对Ajax的底层实现: var xmlhttp; if (window.XMLHttpRequest) { // IE ...

  4. Mac环境下Redis的安装

    1.下载 官网下载地址:https://redis.io/download,选择对应的下载版本,我下载的是4.0.12 2.安装 1)下载文件解压后复制到/usr/local/目录下(快速找到路径小技 ...

  5. 【easy】235. Lowest Common Ancestor of a Binary Search Tree

    题意大概是,找两个节点的最低公共祖先 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNod ...

  6. Salesforce知识整理(一)之Lightning Web Component Tools

    目录 LWC知识整理(一) 工具 Salesforce CLI Visual Studio Code(VS Code) Developer Hub(Dev Hub) 开启Dev Hub 相关资料 茶余 ...

  7. 爬取json Swaggerui界面

    对一个静态的网页进行爬取. 要获取的内容分别为 paths 标签下的 1./quota/开头的路径 2. get 这样的httpmode 3 description对应的描述 4 summary 5 ...

  8. hdu2181 简单搜索

    题意: 一个规则的实心十二面体,它的 20个顶点标出世界著名的20个城市,你从一个城市出发经过每个城市刚好一次后回到出发的城市. Input前20行的第i行有3个数,表示与第i个城市相邻的3个城市.第 ...

  9. Vue实例学习过程中碰到的小问题

    在使用插值表达式{{  }}取data中list数组中的值时把整个表达式当做文本显示了,原因不明,但是使用v-text替换插值表达式之后问题得到解决. 原因已经查明,因为第78行,定义对象car时后面 ...

  10. 安卓获取自有证书的SHA1码

    如果使用自有证书, 请使用 jdk 中自带的 keytool 工具,查看证书信息命令: keytool -list -v -keystore {your_app}.keystore 例如:你的证书为t ...