标签:常用指令 成功 赋值 arc 写入 命令行 proc json process
? Node.js官网下载稳定版本,node偶数版本为稳定版本,奇数版本为非稳定版本。
mac 直接安装 或者 brew来安装
通过指令 node -v 来查看是否安装完成和查看node版本号;npm -v 来查看npm版本。
初步感受Node.js
//引入http模块
let http = require("http");
//创建一个服务器
let serve = http.createServer((req,res)=>{
console.log("hello");
res.end("hello world");
})
//设置端口号
serve.listen(3000);
Google Chrome 默认非安全端口列表,尽量避免以下端口。
1, // tcpmux
7, // echo
9, // discard
11, // systat
13, // daytime
15, // netstat
17, // qotd
19, // chargen
20, // ftp data
21, // ftp access
22, // ssh
23, // telnet
25, // smtp
37, // time
42, // name
43, // nicname
53, // domain
77, // priv-rjs
79, // finger
87, // ttylink
95, // supdup
101, // hostriame
102, // iso-tsap
103, // gppitnp
104, // acr-nema
109, // pop2
110, // pop3
111, // sunrpc
113, // auth
115, // sftp
117, // uucp-path
119, // nntp
123, // NTP
135, // loc-srv /epmap
139, // netbios
143, // imap2
179, // BGP
389, // ldap
465, // smtp+ssl
512, // print / exec
513, // login
514, // shell
515, // printer
526, // tempo
530, // courier
531, // chat
532, // netnews
540, // uucp
556, // remotefs
563, // nntp+ssl
587, // stmp?
601, // ??
636, // ldap+ssl
993, // ldap+ssl
995, // pop3+ssl
2049, // nfs
3659, // apple-sasl / PasswordServer
4045, // lockd
6000, // X11
6665, // Alternate IRC [Apple addition]
6666, // Alternate IRC [Apple addition]
6667, // Standard IRC [Apple addition]
6668, // Alternate IRC [Apple addition]
6669, // Alternate IRC [Apple addition]
一、为什么会有模块化
在JavaScript发展初期就是为了实现简单的页面交互逻辑,寥寥数语即,如今随着前端代码日益膨胀
这时候JavaScript作为嵌入式的脚本语言的定位动摇了,JavaScript却没有为组织代码提供任何明显帮助,JavaScript极其简单的代码组织规范不足以驾驭如此庞大规模的代码;
二、Node.js中的模块化 commonjs规范
CommonJS就是为JS的表现来制定规范,因为js没有模块的功能所以CommonJS应运而生,它希望js可以在任何地方运行,不只是浏览器中。
1、创建自定义模块
引入一个文件?形式模块
home.js执行文件
//通过require来引入
require("./aModule"); //注意一定要有"./",文件后缀可加可不加。
amodule.js文件
console.log("我是amodule模块111");
引入文件夹形式模块
require("./aModuledir"); //必须加"./"
? aModuleDir里的index.js文件,会自动查找文件夹下的index.js文件执行
console.log("我是aModule模块文件夹");
{
"name":"aModule",
"version":"1.0.0",
"main":"test.js"
}
自定义模块的按需导出
通过module.exports 导出; ___dirname , __filename
module.exports = {
a:"我是a的值",
b(){
console.log("我是导出的b函数");
}
}
引入导出文件
let mymodule = require("bModule");
console.log(mymodule.a);
mymodule.b();
或者 通过 exports来导出
exports.fn = function(){
console.log("我是fn函数");
}
导入文件
let myfn = require("bModule").fn;
myfn();
// 或者 通过解构赋值
let { fn } = require("bModule");
fn();
模块加载的优先级 ,先文件再目录;
2、内置模块;
nodejs内置模块有:Buffer,C/C++Addons,Child Processes,Cluster,Console,Cr
ypto,Debugger,DNS,Domain,Errors,Events,File System,
Globals,HTTP,HTTPS,Modules,Net,OS,Path,Process,P unycode,Query Strings,Readline,REPL,Stream,String De coder,Timers,TLS/SSL,TTY,UDP/Datagram,URL, Utilities,V8,VM,ZLIB;内置模块不需要安装,外置模块需要安装;
NPM(Node Package Manager) 官网的地址是 npm官网
fs是文件操作模块,所有文件操作都是有同步和异步之分,特点是同步会加上 "Sync" 如:异步读取文件 "readFile",同步读取文件 "readFileSync";
文件操作
文件读取:
let fs = require("fs");
fs.readFile("1.txt",(err,data)=>{
if(err){
return console.log(err);
}
console.log(data.toString());
})
let fs = require("fs");
let res = fs.readFileSync("1.txt");
console.log(res.toString());
文件写入:
let fs = require("fs");
//flag配置 "a":追加写入,"w":写入,"r":读取
fs.writeFile("2.txt","我是要写入的内容",{flag:"w"},err=>{
if(err){
return console.log(err);
}
console.log("写入成功");
})
文件删除
fs.unlink("2.txt",err=>{
if(err){
return console.log(err);
}
console.log("删除成功");
})
复制文件
function mycopy(src,dest){
fs.writeFileSync(dest,fs.readFileSync(src));
}
mycopy("1.txt","4.txt");
修改文件名,目录也可以通过rename来操作
fs.rename("1.txt","5.txt",function (err) {
if(err){
console.log(err);
}else{
console.log("修改成功");
}
});
判断文件是否存在
fs.exists("4.txt",function (exists) {
console.log(exists);
})
nodejs的安装及使用
服务端及客户端
commonjs模块化
fs模块的使用(文件操作及目录操作)
buffer
标签:常用指令 成功 赋值 arc 写入 命令行 proc json process
原文地址:https://www.cnblogs.com/forcee/p/12301077.html