为什么我不能要求app.use提供的文件?

时间:2015-04-11 00:20:38

标签: node.js require

如果目录已经可用于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可用,Custom使用网络刮刀抓取文章并以圆圈形式呈现(以图像,标题和链接的形式)在views / tree.ejs上,我现在想要custom.js将它创建的每篇文章保存到mongodb数据库但是为了这样做,它需要访问像我的文章模式这样的问题,因此上面的问题。

1 个答案:

答案 0 :(得分:0)

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

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

查看LearnYouNode这是一个优秀的Node初学者教程,以便您了解模块在Node中的工作方式,并了解服务器端和客户端JS之间的分离。