初识Node.js
什么是Node.js?
Node.js是一个开源的、跨平台的JavaScript运行环境。它使用了事件驱动、非阻塞I/O模型,使得它非常适合处理实时数据交互和高并发量的网络应用。
安装Node.js
你可以在Node.js官网中下载安装包,地址为:https://nodejs.org。
安装完毕后,你可以在命令行中输入以下命令检查是否成功安装:
node -v
如果输出了版本号,则说明你已经成功安装了Node.js。
Node.js的基本用法
使用Node.js可以编写前端和后端的JavaScript代码。以下是一个简单的示例:
// server.js
const http = require('http');
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello, World!');
});
server.listen(port, () => {
console.log(`Server running at http://localhost:${port}/`);
});
上述代码是一个简单的HTTP服务器,它会监听3000端口,并返回一个“Hello, World!”的响应。你可以在命令行中输入以下命令启动这个服务器:
node server.js
然后在浏览器中访问http://localhost:3000,就可以看到这个“Hello, World!”的响应了。
另外一个常见的应用场景是使用Node.js编写命令行工具。以下是一个简单的示例:
// cli.js
#!/usr/bin/env node
const program = require('commander');
program
.version('1.0.0')
.command('hello [name]', 'say hello') // 添加一个hello命令
.parse(process.argv);
上述代码定义了一个CLI(Command Line Interface)应用,可以在命令行中输入以下命令查看帮助文档:
./cli.js --help
输出如下:
Usage: cli [options] [command]
Options:
-V, --version output the version number
-h, --help display help for command
Commands:
hello [name] say hello
help [command] display help for command
输入以下命令可以执行hello命令:
./cli.js hello world
输出如下:
Hello, world!
Node.js模块化编程
Node.js支持使用CommonJS规范进行模块化编程。使用module.exports可以将定义在模块内的函数或变量暴露给外部使用。以下是一个简单的示例:
// fibonacci.js
function fibonacci(n) {
if (n === 0 || n === 1) {
return n;
}
return fibonacci(n - 1) + fibonacci(n - 2);
}
module.exports = fibonacci;
上述代码定义了一个名为fibonacci的函数,并且使用module.exports将其暴露给外部使用。
以下是如何在另一个模块中使用这个函数的示例:
// main.js
const fibonacci = require('./fibonacci');
console.log(fibonacci(10)); // 输出55
上述代码使用require来引入fibonacci模块,然后调用它的函数。
Node.js包管理工具——npm
npm(Node.js Package Manager)是Node.js的包管理工具。通过npm,你可以方便地下载、安装、升级和删除Node.js模块。以下是一些常用的npm命令:
- npm install:安装依赖包。
- npm init:初始化一个新的Node.js项目。
- npm publish:将当前项目发布到npm上。
- npm search:搜索Node.js模块。
- npm outdated:检查过时的模块。
- npm update:升级过时的模块。
- npm uninstall:卸载模块。
示例一:利用Node.js爬取网页
以下是一个使用Node.js爬取网页的示例:
// spider.js
const https = require('https');
https.get('https://www.baidu.com', (res) => {
let data = '';
res.on('data', (chunk) => {
data += chunk;
});
res.on('end', () => {
console.log(data);
});
}).on('error', (err) => {
console.log(err);
});
上述代码使用https模块发送一个GET请求,并在响应中读取数据。运行该脚本后,会输出https://www.baidu.com的网页源代码。
示例二:使用Express构建Web应用
以下是一个使用Express框架构建Web应用的示例:
// app.js
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Hello, World!');
});
app.listen(8080, () => {
console.log('Server is running at http://localhost:8080');
});
上述代码使用Express框架构建了一个简单的Web应用,使用GET方式访问根路由时,会返回“Hello, World!”的响应。
运行该脚本后,可以在浏览器中访问http://localhost:8080,就可以看到这个“Hello, World!”的响应了。
总结
本文是初识Node.js的完整攻略,包括了Node.js的基本介绍、安装、基本用法、模块化编程、npm包管理工具和两个示例说明。如果你想深入了解Node.js,可以继续学习如何使用它构建Web应用、编写命令行工具、使用WebSocket实现实时通信等。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:初识Node.js - Python技术站