Node.js基础教程
Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它允许开发者使用JavaScript在服务器端编写可伸缩的网络应用。由于其异步、事件驱动的非阻塞I/O模型,Node.js非常适合构建高并发、高性能的网络应用程序。
### 1. 安装与环境配置
在开始学习Node.js之前,你需要先下载并安装Node.js。访问官方网站(https://nodejs.org/)下载适合你操作系统的安装包。安装过程中,可以选择添加环境变量,以便在任何目录下都能使用`node`和`npm`命令。
### 2. 第一个Node.js程序
创建一个名为`hello.js`的文件,并输入以下代码:
```javascript
console.log('Hello, World!');
```
然后在命令行中运行`node hello.js`,你会看到"Hello, World!"的输出,这是Node.js中最简单的程序。
### 3. 文件系统模块
Node.js内置了对文件系统(fs)的操作,例如读取、写入和创建文件。以下代码展示了如何读取一个文件:
```javascript
const fs = require('fs');
fs.readFile('myfile.txt', 'utf8', (err, data) => {
if (err) throw err;
console.log(data);
});
```
### 4. 模块系统
Node.js采用了CommonJS模块规范,通过`require`函数引入模块,`module.exports`或`exports`导出模块。下面是一个简单的模块示例:
```javascript
// math.js
exports.add = (a, b) => a + b;
// main.js
const math = require('./math');
console.log(math.add(2, 3)); // 输出 5
```
### 5. HTTP服务器
Node.js提供了http模块,可以轻松创建HTTP服务器。以下是一个简单的HTTP服务器示例:
```javascript
const http = require('http');
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello, Node.js Server!');
});
server.listen(3000, () => {
console.log('Server is running on port 3000');
});
```
运行此脚本,然后在浏览器中访问`http://localhost:3000`,你会看到"Hello, Node.js Server!"的响应。
### 6. Express框架
Express是Node.js中最流行的Web应用框架,简化了路由、中间件和模板渲染等功能。安装Express后,你可以快速搭建功能丰富的Web应用:
```bash
npm install express
```
然后在应用中使用:
```javascript
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Welcome to Express');
});
app.listen(3000, () => {
console.log('App is running on port 3000');
});
```
### 7. 数据库连接
Node.js可以通过各种数据库驱动(如MongoDB的mongoose、MySQL的mysql2)与数据库进行交互。以下是一个MongoDB的简单示例:
```bash
npm install mongoose
```
然后在应用中连接数据库:
```javascript
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/mydatabase', {useNewUrlParser: true});
const UserSchema = new mongoose.Schema({ name: String });
const User = mongoose.model('User', UserSchema);
User.create({ name: 'John' }, (err, user) => {
if (err) console.error(err);
else console.log(user);
});
```
### 8. npm包管理器
npm(Node Package Manager)是Node.js的包管理器,用于安装、管理和共享依赖。在项目根目录下创建`package.json`文件,然后可以添加、删除和更新依赖:
```bash
npm init -y
npm install --save package-name
npm uninstall package-name
npm update package-name
```
### 9. 异步编程
Node.js的异步编程主要依靠回调函数、Promise和async/await。这些特性使得Node.js能处理大量并发请求而不会阻塞主线程。以下是一个使用Promise的例子:
```javascript
const readFilePromise = util.promisify(fs.readFile);
readFilePromise('myfile.txt', 'utf8')
.then(data => console.log(data))
.catch(err => console.error(err));
```
### 10. 错误处理
在Node.js中,错误通常是通过回调函数的第一个参数或Promise的`.catch`方法来处理的。良好的错误处理是编写健壮代码的关键。
通过以上介绍,你应该对Node.js的基础知识有了初步了解。继续深入学习,包括中间件、模板引擎、WebSocket、Socket.IO等,将帮助你更好地掌握Node.js并构建实际项目。
评论0
最新资源