初识NodeNode常见语法操作总结
Updated:
1.利用typeof区分数据类型
1 | var a; |
输出结果为:1
2
3
4
5
6
7undefined
number
string
boolean
function
object
object
可以看出null 和object都返回了object,这是因为null实际上是一个空对象指针,当一个变量只声明未赋值时都只返回object
2.利用Boolean()转化数据类型
1 | var a; |
结果如下:1
2
3
4
5false
false
false
false
false
需要注意的是:空字符串,0,null,undefined,NaN都将转化为false,其他则会转化为true。
3.Node.js尝试路径
例如:某个模块的绝对路径是home/hello/hello.js,在该模块中导入其他模块,写法为require(“me/first”),Node.js会依次使用一下路径1
2
3/home/hello/node_modules/me/first
/home/node_modules/me/first
node_modules/me/first
4. 客户端向 http 发送请求
a. http.request 使用 get 方法
首先,我写了一个在请求http相应的页面,打开浏览器输出hello node1
2
3
4
5
6var http = require('http');
http.createServer(function(request, response){
response.writeHead(200, {'Content-Type': 'text/plain'});
response.end('Hello Wrold\n');
}).listen(5000);
console.log('Server running at http://localhost:5000/');
然后再新建一个文件,http.request 使用 get方法1
2
3
4
5
6
7
8
9
10
11
12
13const http = require('http');
let reqData = '';
http.request({
'host': '127.0.0.1',
'port': '5000',
'method': 'get'}, function(res){
res.on('data', function(chunk){
reqData += chunk;
});
res.on('end', function() {
console.log(reqData);
});
}).end();
同时运行,结果会在命令行输出 hello node
b. 利用http.get()方法实现同样的效果
1 | const http = require('http'); |
c. 利用response实现
1 | const http = require('http'); |
5.文件操作
一个文件对象有:
root : 根目录(磁盘名)
dir: 完整目录
base: 路径最后一个部分(肯是文件名或者文件夹名,是文件名时带拓展名)
ext: 拓展名
name: 文件名(不带拓展名)
stats类中方法有:1
2
3
4
5
6
7
8
9
10
11
12
13
14stats.isFile()
//如果是标准目录就返回true,如果是目录,套接字,符号连接或者设备就返回false
stats.isDirectory()
//如果是目录就返回true
stats.isBlockDevice()
//如果是块设备就返回true,大多数块设备都存放在unix系统下
stats.isCharacterDevice()
//如果是字符设备就返回true
stats.isSymbolicLink()
//如果是符号连接就返回true == fs.1stat()
stats.isFIFO()
如果是FIFO(unix中的一种特殊类型的命令管道)就返回true
stats.isSocket()
//如果是unix套字就返回true
fs.stat()、fs.1stat()、fs.fstat()都将返回文件的一些特征信息,如文件的大小、创建时间和权限。
写文件的两种方式:1
2
3
4
5
6
7
8
9
10
11
12
13
var fs = require('fs');
//使用string写入文件
fs.appendFile('message.txt', 'string---data to append!', 'utf8', (err) => {
if (err) throw err;
console.log('the data was appended to file')
});
//使用bufffer写入文件
fs.appendFile('message.txt', 'buffer---data to append!', (err) => {
if (err) throw err;
console.log('the data was appended to file')
})
使用CSV中的stream来读取、解析和转换CSV文件1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
var csv = require('CSV');
var generator = csv.generate({ seed: 1, columns: 2, length: 20 });
var parser = csv.parse();
var transformer = csv.transform(function (data) {
return data.map(function (value) { return value.toUpperCase() });
});
var stringifier = csv.stringify();
generator.on('readable', function () {
while (data = generator.read()) {
parser.write(data);
}
});
//解析生成的额csv文件
parser.on('readable', function () {
while (data = parser.read()) {
transformer.write(data);
}
});
//将CSV文件转换txt文件
transformer.on('readable', function () {
while (data = transformer.read()) {
stringifier.write(data);
}
});
stringifier.on('readable', function () {
while (data = stringifier.read()) {
process.stdout.write(data);
}
});
命令集锦
1 | npm init -y |