Skip to content

WebGis 平台搭建(一):Node.js 服务器设置

第一次使用Express框架搭建Node.js服务器,然后连接MongoDB数据库

Node.js 服务器

使用Node.js技术构建的服务器。Node.js是一个基于Chrome V8 JavaScript引擎的JavaScript运行环境,它允许在服务器端运行JavaScript代码。使用Node.js,开发者可以构建快速的、可扩展的网络应用程序。Node.js 的特点包括非阻塞 I/O 和事件驱动,这使得它特别适合处理大量并发连接,例如在 Web 应用程序、实时通信系统和云服务中。

Express

Express是一个灵活的Node.js Web应用程序框架,提供了一系列强大的特性帮助创建各种Web和移动设备应用。它被设计为简单和灵活,使得Node.jsWeb应用程序开发变得更加快速和容易。

搭建步骤

  1. 导入并创建 Express 应用

    ts
    import express from "express";
    const app = express();
  2. 使用中间件解析 Json

    ts
    // 解析客户端发送的application/x-www-form-urlencoded格式的请求体
    app.use(express.urlencoded({ extended: false }));
    // 解析JSON格式的请求体
    app.use(express.json());
    // 初始化Passport.js,用于身份验证。
    app.use(passport.initialize());
  3. 定义路由
    将所有以/api/users开头的URL路径的请求委托给users路由处理器

    ts
    // 使用routers
    app.use("/api/users", users);
  4. 设置端口与启动服务器

    ts
    const port = process.env.PORT || 5050;
    
    app.listen(port, () => {
      console.log(`Server running on port ${port}`);
    });

服务器启动

开始是想用nodemon进行服务器启动,但一直会报错

sh
TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts"

查了一下发现是因为nodemon默认只识别JavaScript文件, 使用ts文件需要使用 TypeScript编译器(tsc)TypeScript代码编译为 JavaScript,或者使用一个工具如ts-node来直接运行TypeScript代码 后面,改用了ts-node也报了同样的错误,上网搜了一下,发现使用npx tsx可以成功运行,所以改成了这样

sh
>nodemon --exec tsx server.ts
或者
>npx tsx server.ts

就可以成功启动了

文件配置

最后在package.json中配置,后续使用npm start就可以了

json
  "version": "0.0.0",
  "scripts": {
    "start": "npx tsx server.ts",
  }

如有转载或 CV 的请标注本站原文地址