【发布时间】:2021-07-05 17:30:43
【问题描述】:
我正在尝试提供使用 ExpressJS 和 NodeJS 和 Typescript 上传的静态文件,但出现 404 错误。
我要读取的文件是 ./src/data/uploads/test.txt,我正在尝试直接从网络浏览器访问它。
注意:当我在 Javascript 中执行此操作时,它有效,但在 Typscript 中无效。
index.ts 文件(应用入口点)
import express from 'express';
import bodyParser from 'body-parser';
import helmet from 'helmet';
import {cdg, config} from './utils';
import {Mongoose} from './db/monogdb';
import { setRoutes } from './routes/route.decorators';
import cors from 'cors';
import './routes';
const app = express();
app.use(helmet());
app.use(cors());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.use('/ftp', express.static('data/uploads'));
setRoutes(app);
app.listen(config.server.port, () => {
cdg.konsole("Server connected! :: " + config.server.port + "!");
});
有没有使用 Typescript 提供静态文件的特定方法?
【问题讨论】:
-
与所有此类问题一样,我们需要查看三件事以确切了解问题所在:1)您要静态提供的特定文件的示例以及它在本地的确切位置服务器端文件系统以及启动应用程序时它与当前工作目录的关系。 2) 您在 HTML 页面中用于引用该资源的确切 HTML 标记。 3) 您在浏览器控制台中得到的准确错误(显示浏览器请求的完整 URL)。有了这个,我们可以准确地展示如何修复您的静态服务。请将此信息添加到您的问题中。
-
404 错误可能仅仅意味着您尝试读取的文件不存在。我试过你的代码,将端口设置为 3000,在 data/uploads/test.txt 创建一个文件,查询 localhost:3000/ftp/test.txt 并且它工作。
标签: node.js typescript express