我正在开发一个网页,并希望将WebSockets用于直播活动。
作为后端,我使用redis和nodejs订阅者调用socket.io将事件发送给客户端。
但我的问题是从我脚本的第一行开始的。
var express = require('express')();
// ...
在我的服务器上(Ubuntu 16.04,nodejs v6.6.0,表达v4.14.0),它完美无缺,
但在我的开发vm(Ubuntu 16.04,nodejs v6.6.0,表达v4.14.0)中,它说(编辑新的错误消息):
server.js:1
(function (exports, require, module, __filename, __dirname) { var express = require('express')();
^
TypeError: require(...) is not a function
at ...
有谁知道为什么会这样?
expressjs.com主页也说:
var express = require('express');
var app = express();
答案 0 :(得分:1)
你这样做:
var app = require('express')();
或者这个:
var express = require('express');
var app = express();
你不这样做:
var express = require('express')();
var app = express();
前两个选项之间的唯一区别是您是否保存express
模块以供将来参考。
第三个是错误的并且会生成您报告的错误,因为此时第三个express
是一个app对象,而不是一个函数。
答案 1 :(得分:0)
就像我在16年9月21日在comment中写道,解决此问题的方法是:
rm -rf node_modules
和
npm install