Node 入门

NodeJs 安装,HelloWorld
  • 下载地址
https://nodejs.org/zh-cn/
https://nodejs.org/dist/
  • 用 Node命令行输出HelloWorld
console.log("Hello World");
NodeJs 创建应用
  • http 模块引用
require('http')
  • 服务器创建
http.createServer()
  • 端口的监听
server.listen(8888)
  • 使用 node环境运行
node server.js
  • 代码整合
var http = require('http');

var server = http.createServer((request, response)=>{
response.writeHead(200, {"Content-Type": "text/plain"});
response.end('Hello World');
}); server.listen(8888); console.log('服务启动。。。 127.0.0.1:8888');
npm 包管理工具
  • 在安装好 node.js 的时候就自动安装好了 npm
  • npm 作用:包管理工具
  • npm 常用命令

① 包下载

npm install 包名
npm install 包名 -g # 全局安装

② 下载源

npm config get registry  # 获取下载源地址
npm config set registry https://registry.npm.taobao.org/ # 修改淘宝下载源

③ 安装位置的查看

npm root -g
  • 安装地址修改

    [node安装位置]\node_modules\npm中的 npmrc 文件修改为: prefix=D:\Program Files\npm

NodeJs 回调函数
  • 阻塞案例
var fs = require('fs');

fs.readFileSync('sync.txt');

console.log(data.toString());
console.log('结束');
  • 非阻塞案例
var fs = require('fs');

fs.readFile('sync.txt', (err, data) => {
if (err) throw err;
console.log(data.toString());
}); console.log('结束');
EventEmitter 类
  • 作用

实现事件的监听及触发功能

  • 事件的监听
event.on('eventName', function(){});
  • 事件触发
event.emit('eventName');
  • 代码整合
var events = require('events');

var eventEmitter = new events.EventEmitter();
eventEmitter.on("eventName", ()=>{
console.log("触发了");
}); console.log("将要触发");
eventEmitter.emit("eventName");
模块系统
  • Diy 模块
console.log("my module run");
exports.word = 'Hello Module';
  • 模块的引用顺序

    • 是否是路径形式的加载
    require('./my_module')
    • 加载缓存
    var my_module = require('./my_module');
    var my_module = require('./my_module');
    • 原生模块
    var fs = require('fs');
    • 文件模块
    // 从当前文件开始到系统根目录依次查找 node_modules这个文件夹是否有我们想要的数据
路由
  • 新建一个简单的服务器
var http = require('http');

var server = http.createServer((request, response)=>{
response.end('Index')
}); server.listen(3000);
  • 获取用户请求的 路由
request.url
  • 获取用户请求的参数
var url = request('url');
var param = url.parse(request.url, true); console.log(param.query);
  • 代码整合
var http = require('http');
var url = require('url'); var server = http.createServer((request, response) => { if (request.url === '/node') {
response.end('node');
} else if (request.url === '/') {
response.end('Index');
} var param = url.parse(request.url, true);
console.log(param.query.md);
console.log(param.query.pw);
}); server.listen(3000);

Node 入门的更多相关文章

  1. <Node入门经典>读书笔记

    最近在读<Node入门经典>, 之前没有做笔记, 今天开始把看过自己又写了的代码放这里以免忘记. express var express = require('express') var ...

  2. Node入门(转)

    原文链接:http://www.nodebeginner.org/index-zh-cn.html Node入门 作者: Manuel Kiessling翻译: goddyzhao & Gra ...

  3. node入门笔记

    看了<node入门>http://www.nodebeginner.org/index-zh-cn.html.有些疑难点记下来. 在导出模块的时候给出的代码是这样的 var http = ...

  4. Node入门教程(1)目录

    aicoder.com 全栈实习之简明 Node 入门文档 aicoder.com 线下实习: 不 8000 就业,不还实习费. 如果需要转载本文档,请联系老马,Q: 515154084 JS基础教程 ...

  5. [整理]Node入门 » 一本全面的Node.js教程 - Demo实践所遇到的问题

    花了一个上午看完[转载]Node入门 » 一本全面的Node.js教程 根据里面的Demo自己手动实现过程中还是遇到了些问题,特整理在此. <1>.由于node.msi安装包已经自动添加了 ...

  6. 《Node入门》读书笔记——用Node.js开发一个小应用

    Android APP的开发告一段落,一个稳定的.实现了基本功能的APP已经交付用户使用了!我和老板交流了下,接下来准备转战Node.js了,而且一部分前端的功能也要做进去!哈哈哈~~~接下来要朝一个 ...

  7. node入门(三)——gulp运用实例

    在上一篇<node入门(二)——gulpfile.js初探>中,我们知道了(看懂入门二及其参考资料)怎么运用gulp来更高效的开发,现在来示范一下. 在package.json里面配置好d ...

  8. node入门(二)——gulpfile.js初探

    本文关于gulpfile.js怎么写,利于完成个性化需求.本文开发环境默认已安装node,详情参考<node入门(一)——安装>. 一.安装gulp npm install -g gulp ...

  9. Node入门教程(6)第五章:node 模块化(上)模块化演进

    node 模块化 JS 诞生的时候,仅仅是为了实现网页表单的本地校验和简单的 dom 操作处理.所以并没有模块化的规范设计. 项目小的时候,我们可以通过命名空间.局部作用域.自执行函数等手段实现变量不 ...

随机推荐

  1. Git上传项目至GitHub

    要使用github,首先需要下载git.安装git 1.先在github上创建一个git仓库,复制该github路径 2.用cmd进入一个目录 git clone github路径 从github上直 ...

  2. gitlab 提交

    gitlab 提交 Git global setup git config --global user.name "lial" git config --global user.e ...

  3. 闪讯 开启wifi教程

    这是我自己试了几次之后发现的,也不是什么技术活. 首先说下,我的比较是小米pro笔记本,一般笔记本都是自带wifi功能的.如果要开wifi的话,必须是用网线连接才可以,通过wifi连接网络就不能开移动 ...

  4. 该虚拟机似乎正在使用中。 如果该虚拟机未在使用,请按“获取所有权(T)”按钮获取它的所有权。否则,请按“取消(C)”按钮以防损坏。 配置文件: ***.vmx。

    打开虚拟机的时候,出现这样的问题: 该虚拟机似乎正在使用中.  如果该虚拟机未在使用,请按“获取所有权(T)”按钮获取它的所有权.否则,请按“取消(C)”按钮以防损坏.  配置文件: D:\VM\wi ...

  5. justjavac(迷渡)知乎live--<<前端工程师的入门与进阶>>听讲总结

    知乎听讲总结 知乎live----jjc<前端工程师的入门进阶> git地址 内容 前端的基础知识,计算机专业基础知识感觉还行.前端后台都有做过,现在觉得自己要深入.但是只看框架源码和自己 ...

  6. WordCount的实现和测试

    WordCount 一.开头 (1)合作者:201631107110,201631083416 (2)代码地址:https://gitee.com/zhaoxiaoqin/WordCount.git ...

  7. swiper轮播

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. Modbus协议笔记

    读线圈:就是说读开关量输出的状态,看看开关量输出的到底是开着的还是关着的,这样说有点不专业,但是好明白.比如要在上位机显示开关量输出的当状态,就得用这个功能码. 写线圈:就是说读开关量输入的状态,开关 ...

  9. MUI 混合开发移动app应用开发 --- app版本升级

    当我们的app开发完成之后,无可避免的以后会进行产品升级,那么我们希望在客户的手机上让app进行自动升级,可以分为自动升级和手动升级. 自动升级:一般在客户app第一次打开首页的时候. 手动升级:在a ...

  10. SpringCloud之Hystrix-Dashboard监控,以及踩的坑...

    前言: 最近刚入职,公司使用了SpringCloud,之前有了解过SpringCloud,但是长时间不去搭建不去使用很容易就忘了,因此空闲时间重新复习一下SpringCloud.但是之前开的Sprin ...