运行环境
2009 年,Node 创建的目的是为了在没有浏览器的情况下执行 JavaScript 代码,从而使程序员能够仅使用 JavaScript 语言创建全栈(前端和后端)应用程序。
Node 是一个与浏览器完全不同的运行时环境,这意味着不能使用浏览器环境数据值和函数,例如window.alert()。相反,Node 运行时环境使后端应用程序能够访问浏览器中无法提供的各种功能,例如访问服务器的文件系统、数据库和网络。
概括
一个运行环境是你的程序将被执行。JavaScript 代码可以在两种运行时环境之一中执行:
浏览器的运行时环境
Node 运行时环境
在这些环境中的每一个中,都可以使用不同的数据值和函数,这些差异有助于区分前端应用程序和后端应用程序。
前端 JavaScript 应用程序在浏览器的运行时环境中执行,并且可以访问window对象。
后端 JavaScript 应用程序在 Node 运行时环境中执行,可以访问连接到服务器的文件系统、数据库和网络。
第三方包 nodemon
用户输入输出
process.stdout.write(“”);
- btw,console.log()就是用process.stdout.write()包装的
process.stdin.on(‘data’, playGame); //第一个是入参 第二个是函数
文件系统
读取
const fs = require('fs');let readDataCallback = (err, data) => {if (err) {console.log(`Something went wrong: ${err}`);} else {console.log(`Provided file contained: ${data}`);}};fs.readFile('inout.js', 'utf-8', readDataCallback)
逐行读取
.on()方法将侦听器回调函数分配给命名事件。
.on()方法的参数是事件的名称和侦听器回调函数。
const readline = require('readline');const fs = require('fs');let settings = {input: fs.createReadStream('xxx.txt')};const myInterface = readline.createInterface(settings);const printData = (data) => {console.log(`Item: ${data}`);};myInterface.on('line', printData);
写入
const readline = require('readline');const fs = require('fs');const myInterface = readline.createInterface({input: fs.createReadStream('shoppingList.txt')});const fileStream = fs.createWriteStream('shoppingResults.txt');let transformData = (line) => {fileStream.write(`They were out of: ${line}\n`);};myInterface.on('line', transformData);
创建HTTP服务器

http.js
const http = require('http');let { requestListener } = require('./callbackFile.js');const PORT = process.env.PORT || 4001;const server = http.createServer(requestListener);server.listen(PORT);
callbackFile.js
const fs = require('fs');module.exports = {requestListener: (req, res) => {fs.readFile('./myWebsite.html', 'utf-8', (err, data) => {if (err) {res.writeHead(200, { 'Content-Type': 'text/html' });res.write(`${err}`);res.end();} else {res.writeHead(200, { 'Content-Type': 'text/html' });res.write(data);res.end();}})}}
