为什么我不能要求由于 app.use 而可用的文件?

Why can't I require files which are available due to app.use?

如果位于主目录中的 server.js 文件中的节点应用程序可以使用以下目录:

app.use("/scripts",express.static(__dirname + "/scripts"));

我尝试使用该目录 (/scripts/custom.js) 中的文件使用 require:

var Testing123       = require('../app/models/article');

这是不可能的吗?这个问题有解决办法吗?

编辑:在我的一个观点 (views/tree.ejs) 中,我使用:

<script type="text/javascript" src="../scripts/custom.js"></script>

访问我的自定义脚本,它位于我的脚本文件夹中,可以使用 express.static,自定义使用网络抓取工具来抓取文章并将它们呈现在圆圈中(以图像、标题和标题的形式) link) 在 views/tree.ejs 上,我现在希望 custom.js 将它创建的每篇文章保存到 mongodb 数据库,但要这样做,它需要访问像我的文章这样的东西模式因此出现上述问题。

你不能,因为 Node.js 脚本和浏览器脚本不 运行 在同一上下文中。您的 app.use 调用仅公开一个 /scripts 路由,该路由在您的 HTTP 服务器上静态提供资产。

您的 scripts/custom.js 脚本似乎是浏览器端脚本(因为您在 ejs 视图中使用脚本标记加载它)但您想在其中使用 require这将不起作用,因为这是一个 Node.js 函数。

看看 LearnYouNode 这是一个优秀的 Node 初学者教程,这样你就会了解模块是如何在 Node 中工作的,并且更多地了解服务器端和客户端 JS 之间的分离。