require不是从单独的javascript文件NodeJS中定义的

require不是从单独的javascript文件NodeJS中定义的,javascript,node.js,npm,Javascript,Node.js,Npm,如果这个问题太简单,我很抱歉,但我对NodeJS完全是新手,这个问题已经困扰了我一段时间了。我已经通过键入安装了requireJS npm install requirejs 我曾经 express project 创建项目目录结构。因此,我有以下目录结构: Webapp public routes views app.js package.json public images javascripts stylesheets

如果这个问题太简单,我很抱歉,但我对NodeJS完全是新手,这个问题已经困扰了我一段时间了。我已经通过键入安装了requireJS

npm install requirejs
我曾经

express project
创建项目目录结构。因此,我有以下目录结构:

Webapp
    public
    routes
    views
    app.js
    package.json
public
    images
    javascripts
    stylesheets
在public内部,我有以下结构:

Webapp
    public
    routes
    views
    app.js
    package.json
public
    images
    javascripts
    stylesheets
我已经在Webapp/public/javascripts/test.js中创建了一个javascript文件,我需要一个使用

 npm install player
所以在test.js中我只写了一行

var Player = require('../../node_modules/player');
每当我调用这个脚本并用浏览器调试时

Uncaught ReferenceError: require is not defined
编辑: 我想在客户端有一个按钮,当它被点击时,它会触发一个在服务器上执行的播放命令


我确信调用这个脚本(test.js)是因为我创建了一个onclick函数,它就在那里,我在layout.jade中定义了它。回到问题上来,那么我怎样才能在我的javascript文件中需要这个外部库呢

正如评论所说,发生这种情况的原因是b/c您在客户端浏览器环境中执行代码,而不是通过Node.js

运行
节点/test.js
时会发生什么


顺便说一句,如果您想在客户端代码中使用Common.js样式的模块,那么请查看Browserify或Webpack

您的问题似乎将客户端js与服务器端js混为一谈,我们无法真正了解您的问题。node.js已经内置了
require()
。如果不在express服务器中创建支持这些路径的路由,客户端文件无法在服务器上指定任意路径。所以,我们真的不知道你在问什么情况。您了解服务器端JS和客户端JS之间的区别吗?您是在node.JS执行的JS文件中还是在浏览器执行的JS文件中尝试
require()
?其中是
var Player=require('../../node_modules/Player')定位?它是在服务器端JS文件中还是在浏览器中执行的JS文件中?我想我混合了一些东西,场景是我想调用一些函数(服务器端),其中var Player=require(“../../node_modules/Player”);当单击(客户端)上的按钮时。当我执行它时,它不会执行任何操作,也不会终止,也不会给出任何错误!!你能简单地告诉我如何从客户端按钮调用服务器端函数吗?例如,@PokaYoke不看你的代码,很难说为什么你的模块没有“做任何事情”。我的第一个想法是,您的模块只是导出一个尚未调用的对象或函数。此外,您在终端中没有看到任何内容,因为没有任何内容正在向标准输出写入任何内容。至于您的第二条评论,有大量的express教程可以向您展示如何做到这一点:)谢谢,但正如我在问题中所写,模块的代码只是一行。谢谢,我也去看看。