好的,我可以为您生成一本Markdown格式的学习文档,主题是Node.js教程学习笔记。这本笔记将涵盖Node.js的基础知识、核心模块和常用模块以及实例等内容,帮助您更好地学习和掌握Node.js技术。

Node.js 学习笔记

基础知识

什么是Node.js?

Node.js是基于Chrome V8引擎的JavaScript运行时环境,使得JavaScript能够脱离浏览器在服务器端执行,实现了服务端JavaScript应用的开发。

Node.js 的特点

  • 单线程异步IO模型,可以处理大量并发请求
  • 基于事件驱动的编程模型,代码简洁易维护
  • 使用npm包管理器,拥有庞大的第三方模块库
  • 跨平台支持,可在Windows、Linux和Mac OS等操作系统上运行

Node.js 安装

您可以到nodejs.org下载适合您操作系统的安装包,按照提示安装即可。

核心模块

fs模块

fs模块是Node.js内置的文件系统模块,提供了文件读写、目录操作等相关功能,是Node.js中最常用的核心模块之一。

文件读写

javascriptCopy Code
const fs = require('fs'); // 读取文件内容 fs.readFile('path/to/file', 'utf-8', (err, data) => { if (err) throw err; console.log(data); }); // 写入文件内容 fs.writeFile('path/to/file', 'Hello Node.js!', (err) => { if (err) throw err; console.log('文件已保存'); });

目录操作

javascriptCopy Code
const fs = require('fs'); // 创建目录 fs.mkdir('path/to/dir', { recursive: true }, (err) => { if (err) throw err; console.log('目录已创建'); }); // 读取目录 fs.readdir('path/to/dir', (err, files) => { if (err) throw err; console.log(files); }); // 删除目录 fs.rmdir('path/to/dir', { recursive: true }, (err) => { if (err) throw err; console.log('目录已删除'); });

http模块

http模块是Node.js内置的HTTP服务器模块,可以用来创建一个简单的HTTP服务器。

javascriptCopy Code
const http = require('http'); const server = http.createServer((req, res) => { res.writeHead(200, { 'Content-Type': 'text/plain' }); res.end('Hello World!'); }); server.listen(3000, () => { console.log('Server running at http://localhost:3000/'); });

常用模块

express模块

express是一个流行的基于Node.js平台的Web应用框架,提供了一系列强大的功能和特性,使得开发Web应用更加简单和快速。

javascriptCopy Code
const express = require('express') const app = express() app.get('/', (req, res) => { res.send('Hello World!') }) app.listen(3000, () => { console.log('Example app listening at http://localhost:3000') })

mongoose模块

mongoose是基于Node.js平台的MongoDB对象模型工具,提供了一系列强大的功能和特性,使得开发MongoDB应用更加简单和便捷。

javascriptCopy Code
const mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/test', { useNewUrlParser: true }); const Cat = mongoose.model('Cat', { name: String }); const kitty = new Cat({ name: 'Tom' }); kitty.save().then(() => console.log('meow'));

实例

使用Node.js搭建一个简单的Web应用

javascriptCopy Code
const http = require('http'); const server = http.createServer((req, res) => { res.writeHead(200, { 'Content-Type': 'text/html' }); res.write('<h1>Hello Node.js!</h1>'); res.end(); }); server.listen(3000, () => { console.log('Server running at http://localhost:3000/'); });

在浏览器中输入http://localhost:3000/即可访问该应用,页面将显示Hello Node.js!

使用express和mongoose搭建一个简单的REST API服务

javascriptCopy Code
const express = require('express'); const mongoose = require('mongoose'); const app = express(); const port = process.env.PORT || 3000; mongoose.connect('mongodb://localhost/test', { useNewUrlParser: true }); const Cat = mongoose.model('Cat', { name: String }); app.get('/cats', (req, res) => { Cat.find((err, cats) =>{ res.send(cats); }); }); app.post('/cats', (req, res) => { const kitty = new Cat({ name: 'Tom' }); kitty.save().then(() => console.log('meow')); res.send('Added a new cat!'); }); app.listen(port, () => { console.log(`Server running at http://localhost:${port}`); });

在浏览器中输入http://localhost:3000/cats,即可访问该API服务,该服务将返回所有的Cat文档信息。同时,在命令行中执行curl -X POST http://localhost:3000/cats,即可向该服务添加一个新的Cat文档。