Fork me on GitHub

nodejs理解

一、nodejs介绍

nodejs主要体现在事件机制和异步IO,nodejs是事件驱动的;

nodejs作用:js的运行环境、操作文件、链接数据库;

nodejs在执行js是单线程的,但不是nodejs是单线程的;

可以写一些小工具,聊天室,爬虫

检测node是否安装成功: 命令行-node -v 出现node的版本号就是安装成功了

编辑器:还是推荐vsCode

二、模块

1.模块化

module.export 导出

reuqire 导入

module.js
var a=require('./app').a;
console.log(require('./app'))
var c=1+a;
console.log(c)


app.js
var a=1;
module.exports={
    a:a
};

2.事件

events

引入events 创建事件 绑定事件 触发事件

const EventEmitter = require('events');//引入事件
class MyEmitter extends EventEmitter {}//继承事件
const myEmitter = new MyEmitter();//创建类
myEmitter.on('event', () => {//绑定事件
  console.log('触发事件');
});
myEmitter.emit('event');//出发事件

3.读写文件

引入fs

读写文件这里面函数会区分同步和异步

同步是一步一步执行的,按照代码的顺序来的,后面等

异步是会在执行其他的代码,等到代码执行完成之后,在执行回调函数的里面的代码

var fs=require('fs');
fs.writeFile('demo.txt','数据','utf8',function(){
    
})
fs.mkdir(__dirname+'/demo',function(){
    var stream=fs.ReadStream('demo.txt',{highWaterMark:64})
    console.log(stream)
    fs.writeFile(__dirname+'/demo/'+'demo1.txt',stream,function(){
    })
})

4.流

stream

标准输入 标准输出

对http请求的处理也是流,响应流 请求流

所有流都可以做成事件处理

应用:处理数据、提高性能(流可以将大文件数据放到一段一段的buffer中)

管道

pipe

5.web服务器

http

输出txt文本;text/txt

输出json数据;application/json

输出html文件;text/plain; 可以利用管道

6.util 实用工具

nodejs内置的一些api工具

7.http建立服务器

可以通过http模块建一个一个服务器

8.path路径操作

对当前项目一些路径进行操作

9.url

处理和解析获取到的URL

三、资料

官网 :https://nodejs.org/en/

中文官网:http://nodejs.cn/

四、注意

1.node热更新

supervisor

首先需要使用 npm 安装 supervisor(这里需要注意一点,supervisor必须安装到全局)

$ npm install -g supervisor

Linux 或 Mac用户需要使用管理员权限

sudo npm install -g supervisor

安装完成后就可以用supervisor启动服务了(假设你的Node.js程序主入口是app.js)

$ supervisor app.js

命令行窗口会显示启动成功信息,并开始代码监听,当代码被修改之后,运行的脚本会被终止,自动重新启动。

 

PS: express 4.x把用于项目启动的代码移到了./bin/www的文件,如需使用supervisor 启动express项目请使用下面的命令

supervisor bin/www

 2.mysql

(1)、  'Incorrect string value: \'\\xE5\\xBC\\x80\\xE5\\xA7\\x8B...\' for column \'topoData\' at row 1',

因为字段的值中包含中文,但是你设置的字段里面不是utf-8的

posted @ 2019-04-15 22:15  zhang_yx  阅读(837)  评论(0编辑  收藏  举报