【问题标题】:Share.js not working with Express.jsShare.js 不适用于 Express.js
【发布时间】:2014-12-20 21:52:21
【问题描述】:

服务器端代码,

var express = require('express'); //Web Framework
var app = express();
var http = require('http').Server(app); //HTTP server module
var connect = require('connect'),
    sharejs = require('share').server;

app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  next();
});


var options = {db: {type: 'none'}}; // See docs for options. {type: 'redis'} to enable persistance.

// Attach the sharejs REST and Socket.io interfaces to the server
sharejs.attach(server, options);

app.get('/', function (req, res) {
  res.sendFile('index.html', { root: __dirname });
})


http.listen(3000, function () {
    console.log('listening on *:3000');
});

但我无法让 share.js 工作。

它给出一个错误,ReferenceError: server is not defined

如何让 express 与 share.js 一起工作?

【问题讨论】:

  • 你安装了吗,npm install share?我也认为你应该这样实例化它:require('share').server;
  • 试过了,没有结果!
  • 您还有其他错误,还是同样的错误?
  • TypeError: Object # 没有方法'use',这个
  • 您应该传递一个server 对象作为第一个参数,而不是sharejs.attach(http, options); 中的http。请参阅documentation

标签: javascript node.js express share.js


【解决方案1】:

ShareJS 0.6

如果您使用的是 ShareJS 0.6,问题是您使用的是 require('share').http 而不是 require('share').server

变化:

var connect = require('connect'),
    sharejs = require('share').http;

收件人:

var connect = require('connect'),
    sharejs = require('share').server;

ShareJS 0.7

如果您使用的是 ShareJS 0.7,attach 方法已被弃用。有关解决方法,请参阅 this answer


更新

现在您的答案已更新,问题是您尚未定义 server 变量。 The documentation 声明您可以使用以下方式定义它:

var server = connect(
      connect.logger(),
      connect.static(__dirname + '/public')
    );

【讨论】:

  • 将其更改为服务器。使用0.6.3,不行,报这个错误,TypeError: Object # has no method 'use'
  • 不行,还是不行。 TypeError: Object function createServer() { function app(req, res, next){ app.handle(req, res, next); } 合并(应用程序,原型);合并(应用程序,EventEmitter.prototype); app.route = '/'; app.stack = [];返回应用程序; } has no method 'logger' Express with share 似乎真的是个问题
  • @KevinDesai 在这种情况下,我认为我无法提供进一步的帮助。可能值得在 ShareJS 的 GitHub 存储库中提出这个问题:github.com/share/ShareJS
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-16
  • 2021-03-10
  • 1970-01-01
  • 1970-01-01
  • 2014-12-25
  • 1970-01-01
相关资源
最近更新 更多