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. ‎Cocos2d-x 学习笔记(21.1) ScrollView “甩出”效果与 deaccelerateScrolling 方法

    1. 简介 “甩出”效果是当我们快速拖动container并松开后,container继续朝原方向运动,但是渐渐减速直到停止的效果. ScrollView的onTouchEnded方法会设置Timer ...

  2. Spring Boot提供RESTful接口时的错误处理实践

    使用Spring Boot开发微服务的过程中,我们会使用别人提供的接口,也会设计接口给别人使用,这时候微服务应用之间的协作就需要有一定的规范. 基于rpc协议,我们一般有两种思路:(1)提供服务的应用 ...

  3. Spring Boot入门(二):获取配置文件值

    本篇博客主要讲解下在Spring Boot中如何获取配置文件的值. 1. 使用yaml配置文件 Spring Boot默认生成的配置文件为application.properties,不过它也支持ya ...

  4. Visual Studio各版本及数据库各版本下载地址

    1.Visual Studio 2019下载地址:https://visualstudio.microsoft.com/zh-hans/downloads/ 2.Visual Studio 2017\ ...

  5. 使用FastReport报表工具生成标签打印文档

    在我们实际开发报表的时候,我们需要按一定的业务规则组织好报表的模板设计,让报表尽可能的贴近实际的需求,在之前的随笔中<使用FastReport报表工具生成报表PDF文档>介绍了FastRe ...

  6. 关于C#界面开发winform与SharpGL结合鼠标只在OpenGLControl绘图区域显示坐标移动消息响应(鼠标单独在某个控件上的消息响应)

    原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/11773260.html 因为很多时候我们开发画图之类的工具时,鼠标移动之类的,都只想在绘图区域 ...

  7. mysql的一些常用操作(一)

    1.启动Mysql服务 net start mysql 2.进入mysql环境中,由于自己没有设置密码,直接回车进入即可(要将bin加入到环境变量path中) mysql -u root -p 3.创 ...

  8. SpringBoot整合Logback

    本文主要讲与Boot整合,后面会详细讲解Logback 官方文档 ConsoleAppender 如 name 所示,附加在 console 上,或者更准确地说是 System.out 或 Syste ...

  9. ArangoDB安装方法整理

    目录 方法一:镜像安装 方法二:离线安装 方法三:在线安装 启动与停止服务 一.镜像安装(推荐方法) 安装docker 安装方法参见docker安装方法整理. 安装arangodb镜像: docker ...

  10. 前端技术之:如何在控制台将JS class实例输出为JSON格式

    有一个类: class Point { constructor(x, y) { this.x = x; this.y = y; } } 如果我们在控制台中输出其实例: console.log(new ...