Node.js是一个服务器端的Javascript解析器。
在node中,不同的功能组件被划分成不同的模块。
全局模块的默认安装位置
npm root -g
查看全局模块的默认搜索路径
$node
>global.module.paths
new events.EventEmitter() 创建了一个事件触发器
addListener(event, listener) 和 on(event, listener) 这两个方法都是将一个监听器添加到指定事件的监听器数组的末尾。
once(event, listener) 这个方法为事件为添加一次性的监听器。该监听器在事件第一次触发时执行,过后将被移除。
removeListener(event, listener) 该方法用来将监听器从指定事件的监听器数组中移除出去。
emit(event, [arg1], [arg2], [...]) 方法用来产生事件。以提供的参数作为监听器函数的参数,顺序执行监听器列表中的每个监听器函数。
所有数据流都是EventEmitter的实例,因此可以产生各种不同的事件。
可读流主要会产生以下事件:
var fs = require('fs'); fs.unlink('./myModule.js', function (err) {
if (err) throw err;
});
var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(1337, "127.0.0.1");http.createServer 创建并返回一个新的web server对象,并且给服务绑定一个回调,用以处理请求。通过 http.listen() 方法就可以让该 HTTP 服务器在特定端口监听。
var mysql = require(‘mysql‘); var connect = mysql.createConnection({ host:‘localhost‘, user:‘root‘, password:‘1993‘, database:‘test‘, port:3306 }); connect.connect();
connection.query(selectSQL, function(err, rows, fields) {
if (err) throw err;
console.log("SELECT ==> ");
for (var i in rows) {
console.log(rows[i]);
}
});
connect.end(); //end()方法在queries都结束后执行。end()方法可以接受一个回调函数,query执行出错后,错误返回给回调函数的err参数。
connect.destory(); //不接受回调函数, 立即结束
问题 Error:Cannot find module 'mysql'
1.设置全局模块根目录NODE_PATH=“E:\nodejs\node_modules”。
2.若没有设置全局模块根目录,那么执行js的目录必须有依赖的modules。
(1)直接在执行js的目录下npm install xxx。
(2)在执行js的目录下,创建package.json文件,把需要的modules加进去,然后执行npm install。
Connection Options
charset 字符集,默认为UTF8_GENERAL_CI
connectTimeout 连接超时,单位毫秒,默认不限制
multipleStatements 是否许一个query中有多个MySQL语句 ,默认为false
数据库基本操作
增
var userAddSql =
'INSERT INTO userinfo(Id,UserName,UserPass) VALUES(0,?,?)'
;
var userAddSql_Params = [
'Wilson'
,
'abcd'
];
connection.query(userAddSql,userAddSql_Params,function (err, result){});
result中包含affectedRows(受影响的行数)、insertId(插入的主键ID)。根据这些信息可以方便进行后续操作。
删改
v var userModSql =
'UPDATE userinfo SET UserName = ?,UserPass = ? WHERE Id = ?'
;
var userModSql_Params = [
'钟慰'
,
'5678'
,
1
];
connection.query(userModSql,userModSql_Params,function (err, result) {});
查
var userGetSql =
'SELECT * FROM userinfo'
;
connection.query(userGetSql,function (err, result) {});
删
var userDelSql =
'DELETE FROM userinfo'
;
connection.query(userDelSql,function (err, result) {});