Skip to content

Workflow

Together we can fly! edited this page Apr 4, 2016 · 9 revisions

项目 4 构建过程

在这个项目中,我们将使用 NodeJS 创建一个 Web 应用,支持用户上传照片以及维护其元数据。具体功能包括:

  1. 支持上传图片到服务器,并且保存到腾讯云 COS 服务中
  2. 保存图片访问信息以及元数据到腾讯云 MongoDB 中
  3. 支持更新图片元数据
  4. 列出所有图片记录,支持搜索以及分页
  5. 支持记录并查询搜索关键字历史
  6. 支持图片及其元数据的删除

下面,我们将一步步带领大家完成这个 Web 应用。

线上运行

目前项目 4 已经在线上运行,地址为 http://project4.qcourse.net

项目对应的 HTTP 请求报文已经分享到 Postman 中,安装了 Postman 的同学可以直接导入或者运行。

https://www.getpostman.com/collections/bf1a387c72503ec19560

Run in Postman

开发过程中,可修改 Postman 的 HTTP 请求地址到自己项目对应的线上地址。

准备

知识

本项目假设开发者已经了解以下基础知识,项目开展过程中这些知识不再讲解:

  • NodeJS
  • Express
  • ES 2015,本项目使用到包括但不限于箭头函数、字符串模板、Generator/Promise

工具

本项目使用到下列开发工具,读者可根据自身情况选择是否使用:

  • SecureCRT - 用于连接到腾讯云服务器,Linux 环境可以直接使用 ssh
  • SecureFX - 用于同步开发环境代码到服务器上
  • pm2 - 一个 NodeJS 应用容器,支持应用自动重启和 Watch 模式

云资源

本项目使用到的云资源包括:

  1. 腾讯云 CVM 1 台,配置 EIP
  2. 腾讯云 COS 服务,创建 bucket 1 个
  3. 腾讯云 CMongo 服务,需要提前申请开通
  4. (可选)腾讯云注册域名一个,用于指向提供的服务。

开工

Step0. 配置 nginx 以及初始化 Node 源码,使线上可访问。

此步骤可参照之前的 nginx 配置方式,本项目 Node 应用在 3000 端口运行。项目的启动代码如下:

// server.js
'use strict';

const express = require("express");

function start(port) {
    const app = express();
    
    // tells the client the server can work.
    app.get("/", (request, response) => {
        response.write("It works!");
        response.end();
    });
    app.listen(port || 3000);
}

start();