相关疑难解决方法(0)

Express-js无法获取我的静态文件,为什么?

我已将代码缩减为我可以制作的最简单的express-js应用程序:

var express = require("express"),
    app = express.createServer();
app.use(express.static(__dirname + '/styles'));
app.listen(3001);
Run Code Online (Sandbox Code Playgroud)

我的目录看起来像这样:

static_file.js
/styles
  default.css
Run Code Online (Sandbox Code Playgroud)

然而,当我访问时,http://localhost:3001/styles/default.css我收到以下错误:

Cannot GET / styles /
default.css
Run Code Online (Sandbox Code Playgroud)

我正在使用express 2.3.3node 0.4.7.我究竟做错了什么?

node.js express

297
推荐指数
9
解决办法
25万
查看次数

节点js/Express js相对路径(点或__dirname或没有任何前缀)?

我在看的NodeJS/expressjs和看到不同的教程请使用__diranme + "/my_folder","./my_folder"或只"my_folder".

例子:

app.use("/static", express.static(__dirname + "/my_folder"));
app.use("/static", express.static("./my_folder"));
app.use("/static", express.static("my_folder"));
Run Code Online (Sandbox Code Playgroud)

我尝试了所有这些,他们似乎都工作; 我应该将哪一个用于相对路径?

我也看到了require('./my_file.js')require('my_file').有区别吗?我该怎么用?

node.js express

16
推荐指数
2
解决办法
3万
查看次数

解析相对于另一个路径而不是当前工作目录的相对路径

我有一个 Node.js 模块,如下所示:

module.exports = function()
{
    // linked dependencies
    this.dependency1 = 'dependency1/dependency1.exe';
    this.dependency2 = 'dependency2/dependency2.exe';
    this.dependency3 = 'dependency3/dependency3.exe';
}
Run Code Online (Sandbox Code Playgroud)

我希望开发人员能够轻松编辑依赖项相对于模块文件本身的位置。但是,在使用模块时,当前工作目录process.cwd()通常与模块目录不同,因此这些路径无法正确解析。path.resolve()似乎只相对于当前工作目录工作,并且没有任何参数来允许自定义参考点/路径。

我已经能够通过以下方式解析路径,但我发现它丑陋且麻烦,它应该比这更容易:

this.ResolvePath = function(p)
{
    var cwd = process.cwd();
    process.chdir(path.dirname(module.filename));
    var resolvedPath = path.resolve(p);
    process.chdir(cwd);
    return resolvedPath;
}
Run Code Online (Sandbox Code Playgroud)

有没有更干净的方法来做到这一点?我觉得path.relative()应该保留解决方案,但我找不到让它发挥作用的方法。也许将多个path.relative()s 链接在一起可能会起作用,但我现在无法思考它是如何工作的。

javascript node.js

3
推荐指数
1
解决办法
4763
查看次数

"message": "ENOENT:没有那个文件或目录,打开'E:\\astrology\\utils\\uploads\\1600798534862qf.png'"

正如标题所暗示的,error: {"message": "ENOENT: no such file or directory, open 'E:\\astrology\\utils\\uploads\\1600798534862qf.png'"}即使在通过了所有必需的配置之后,我还是会进入我的项目。

注意:我将“app”分为两部分:主要的“app.js”和“appRoute.js”是为了更动态和更清晰的代码。

应用程序.js

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

const app = express();
const directory = path.join(__dirname, "utils/uploads");
app.use("/uploads", express.static(directory));

require("./config/database/db")();
require("./config/approutes/appRoutes")(app);

module.exports = app;
Run Code Online (Sandbox Code Playgroud)

appRoute.js

require("dotenv").config();

const morgan = require("morgan");
const bodyParser = require("body-parser");
const cors = require("cors");

const productRoutes = require("../../api/routes/products");

module.exports = function (app) {
  app.use(morgan("dev"));

  app.use(bodyParser.urlencoded({ extended: true, limit: "100mb" }));
  app.use(bodyParser.json());

  app.use(cors({ credentials: true, origin: true }));

  app.use("/products", productRoutes);
  
  app.use((req, res, next) …
Run Code Online (Sandbox Code Playgroud)

node.js express multer

0
推荐指数
1
解决办法
326
查看次数

标签 统计

node.js ×4

express ×3

javascript ×1

multer ×1