1

服务器端代码,

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 一起工作?

4

1 回答 1

0

分享JS 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;

分享JS 0.7

如果您使用的是 ShareJS 0.7,则该attach方法已被弃用。请参阅此答案以获取解决方法。


更新

现在您的答案已更新,问题是您尚未定义server变量。该文档指出,您可以使用以下方法定义它:

var server = connect(
      connect.logger(),
      connect.static(__dirname + '/public')
    );
于 2014-12-20T13:39:14.217 回答