从零开始学习Node.js

心灵画师 2021-01-09 ⋅ 17 阅读

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,可以用于构建高效的、可扩展的网络应用程序。作为一名开发者,学习并掌握 Node.js 后端开发是非常有必要的。本篇博客将为你提供一个全面的实战教程,帮助你从零开始学习 Node.js 后端开发。

目录

  1. 安装 Node.js
  2. 编写你的第一个 Node.js 应用
  3. 搭建一个简单的 Express.js Web 应用
  4. 连接数据库
  5. 实现用户认证
  6. 创建 RESTful API
  7. 部署你的应用到服务器

1. 安装 Node.js

在开始学习 Node.js 之前,首先需要安装 Node.js 运行环境。可以从 Node.js 的官方网站 (https://nodejs.org/) 下载最新版本的 Node.js,并按照步骤进行安装。

安装完成后,你可以通过在命令行输入 node -v 来检查 Node.js 是否安装成功。

2. 编写你的第一个 Node.js 应用

让我们从一个简单的 "Hello World" 应用开始。创建一个名为 app.js 的文件,并写入以下代码:

console.log("Hello World");

保存文件后,在命令行中进入文件所在目录,并输入 node app.js。你将会在命令行中看到打印出的 "Hello World"。

3. 搭建一个简单的 Express.js Web 应用

Express.js 是一个流行的 Node.js Web 应用框架,在开始开发复杂的 Web 应用之前,我们先来搭建一个简单的 Express.js Web 应用。

首先,我们需要在项目目录下创建一个 package.json 文件。你可以通过在命令行中输入 npm init 并按照提示进行操作来创建。

然后,我们使用以下命令安装 Express.js:

npm install express

创建一个名为 server.js 的文件,并写入以下代码:

const express = require("express");
const app = express();

app.get("/", (req, res) => {
  res.send("Hello Express.js");
});

app.listen(3000, () => {
  console.log("Server is running on http://localhost:3000");
});

保存文件后,在命令行中输入 node server.js,然后在浏览器中访问 http://localhost:3000,你将会看到页面上显示 "Hello Express.js"。

4. 连接数据库

在真实的应用中,我们通常需要连接数据库来存储和获取数据。在 Node.js 中,有很多数据库驱动可供选择,比如 MongoDB、MySQL 等。

以连接 MongoDB 为例,首先需要在 MongoDB 官网下载并安装 MongoDB,然后在项目目录下安装 mongodb 驱动:

npm install mongodb

接下来,我们修改 server.js 文件,并添加连接数据库的代码:

const express = require("express");
const { MongoClient } = require("mongodb");
const app = express();
const url = "mongodb://localhost:27017";
const dbName = "mydatabase";

MongoClient.connect(url, (err, client) => {
  if (err) throw err;
  console.log("Connected to database");

  const db = client.db(dbName);

  app.locals.db = db;
});

// ... 其他代码

这样我们就成功连接了数据库,并将其存储在 app.locals.db 中,可以在后续的路由处理函数中使用该数据库。

5. 实现用户认证

用户认证是很多应用中必不可少的功能。在 Node.js 中,可以使用 Passport.js 将用户认证功能集成到应用中。

首先,我们需要安装 passportpassport-local 两个包:

npm install passport passport-local

接着,我们修改 server.js 文件,并实现一个简单的用户认证功能:

const express = require("express");
const passport = require("passport");
const LocalStrategy = require("passport-local").Strategy;
const { MongoClient } = require("mongodb");
const app = express();
const url = "mongodb://localhost:27017";
const dbName = "mydatabase";

// 连接数据库代码

passport.use(
  new LocalStrategy((username, password, done) => {
    const db = app.locals.db;
    db.collection("users").findOne({ username }, (err, user) => {
      if (err) return done(err);
      if (!user) return done(null, false, { message: "Incorrect username" });
      if (user.password !== password)
        return done(null, false, { message: "Incorrect password" });
      return done(null, user);
    });
  })
);

app.use(passport.initialize());
app.use(passport.session());

app.post(
  "/login",
  passport.authenticate("local", {
    successRedirect: "/",
    failureRedirect: "/login",
  })
);

// ... 其他代码

这样,我们就完成了一个简单的用户认证功能,并使用了 Passport.js 和 passport-local 包来实现。

6. 创建 RESTful API

RESTful API 是现代 Web 应用中常用的一种设计风格。在 Node.js 中,可以使用 Express.js 快速创建 RESTful API。

以下代码演示了如何创建一个简单的 RESTful API:

const express = require("express");
const { MongoClient, ObjectID } = require("mongodb");
const app = express();
const url = "mongodb://localhost:27017";
const dbName = "mydatabase";

// 连接数据库代码

app.get("/api/users", (req, res) => {
  const db = app.locals.db;
  db.collection("users")
    .find()
    .toArray((err, users) => {
      if (err) throw err;
      res.json(users);
    });
});

app.get("/api/users/:id", (req, res) => {
  const db = app.locals.db;
  const id = new ObjectID(req.params.id);
  db.collection("users").findOne({ _id: id }, (err, user) => {
    if (err) throw err;
    res.json(user);
  });
});

app.post("/api/users", (req, res) => {
  const db = app.locals.db;
  const newUser = req.body;
  db.collection("users").insertOne(newUser, (err, result) => {
    if (err) throw err;
    res.sendStatus(200);
  });
});

// ... 其他代码

这样,我们就创建了一个包含用户列表、单个用户获取和创建新用户的 RESTful API。

7. 部署你的应用到服务器

在开发完成后,我们需要将应用部署到服务器上,使其可以通过网络访问。

首先,你需要获取一个服务器,并确保服务器安装了 Node.js 运行环境。

接下来,将你的应用文件上传到服务器上,并在服务器上执行 npm install 命令安装依赖。

最后,通过在服务器上运行 node server.js 或使用类似 pm2 的工具来启动你的应用。

现在,你的应用就可以通过服务器的 IP 地址或域名来访问了。

总结

本篇博客提供了一个全面的实战教程,帮助你从零开始学习 Node.js 后端开发。通过按照这个教程的步骤,你可以学习到如何安装 Node.js、编写一个简单的 Node.js 应用、搭建一个 Express.js Web 应用、连接数据库、实现用户认证、创建 RESTful API,并最终将应用部署到服务器上。

希望这个教程对你学习 Node.js 后端开发有所帮助,祝你成功!


全部评论: 0

    我有话说: