当前位置: 首页 > 知识库问答 >
问题:

如何在nodejs中将两个应用程序合并到一个文件中

邓夕
2023-03-14

这是我的聊天应用程序文件代码

var worker=function(worker) {
var http=require('http');
var fs=require('fs');
var app=http.createServer(function(request,response){

fs.readFile("index.html",'utf-8',function(err,data){
response.writeHead(200, {'Content-Type': 'text/html'});
    response.write(data);
    response.end();


});
}).listen(8080);


var io = require('socket.io').listen(app);

io.sockets.on('connection', function(socket) {
socket.on('message_to_server', function(data) {
    io.sockets.emit("message_to_client",{ message: data["message"] });
  });
});
};
 module.exports=worker;

这是我的服务器。js文件

  var express  = require('express');
  var io = require('socket.io');
   var worker = require("./chat/main.js");
    var app      = express();
  var port     = process.env.PORT || 8080;
 var mongoose = require('mongoose');
 var passport = require('passport');
  var flash      = require('connect-flash');

  var configDB = require('./config/database.js');


   mongoose.connect(configDB.url);

  require('./config/passport')(passport); 

  app.configure(function() {


app.use(express.logger('dev')); 
app.use(express.cookieParser()); 
app.use(express.bodyParser()); 

app.set('view engine', 'ejs'); 


app.use(express.session({ secret: 'ilovescotchscotchyscotchscotch' })); 
app.use(passport.initialize());
app.use(passport.session()); 
app.use(flash()); 

    });


 require('./app/routes.js')(app, passport,worker);

 app.listen(port);



  console.log('The magic happens on port ' + port);

在途中。js文件

我在写这段代码

 module.exports = function(app, passport,worker) {
 app.get('/chat', function(req, res) {
    req.worker();
    res.redirect('/chat');
});

TypeError:对象#在C:\Users\Sanjay1\Desktop\fmodule\login\app\routes没有方法“worker”。js:11:7在路由器的pass(C:\Users\Sanjay1\Desktop\node_modules\express\lib\router\index.js:145:5)处的param(C:\Users\Sanjay1\Desktop\node_modules\express\router\index.js:164:37)处的回调(C:\Users\Sanjay1\Desktop\node_modules\express\lib\router\index.js:138:11)_在对象上调度(C:\Users\Sanjay1\Desktop\node\u modules\express\lib\router\index.js:173:5)。路由器(C:\Users\Sanjay1\Desktop\node\u modules\express\lib\router\index.js:33:10)位于下一个对象(C:\Users\Sanjay1\Desktop\node\u modules\express\node\u modules\connect\lib\proto.js:193:15)。在SessionStrategy的下一个(C:\Users\Sanjay1\Desktop\node\u modules\connect flash\lib\flash.js:21:5)处理(C:\Users\Sanjay1\Desktop\node\u modules\express\node\u modules\connect\lib\proto.js:193:15)。策略通过(C:\Users\Sanjay1\Desktop\node\u modules\passport\lib\middleware\authenticate.js:314:9)

共有1个答案

慕容成文
2023-03-14

你没有被定义。worker()方法。使用插座。io和express在一个文件中查看示例:

/**
 * Module dependencies.
 */

var express = require('express')
  , routes = require('./routes')
  , http = require('http');

var app = express();
var server = app.listen(3000);

// Tell socket.io to work on the same port with express server
var io = require('socket.io').listen(server);

app.configure(function(){
  app.set('views', __dirname + '/views');
  app.set('view engine', 'jade');
  app.use(express.favicon());
  app.use(express.logger('dev'));
  app.use(express.static(__dirname + '/public'));
  app.use(express.bodyParser());
  app.use(express.methodOverride());
  app.use(app.router);
});

app.get('/', routes.index);

io.sockets.on('connection', function(socket) {
    socket.on('message_to_server', function(data) {
        io.sockets.emit("message_to_client",{ message: data["message"] });
    });
});

这是一个很好的例子。

 类似资料:
  • 我在同一个文件夹中有两个文件:chapter1。Rmd和第2章。Rmd,包括以下内容: 第一章Rmd 第2章Rmd 如何将它们组合成一个pdf输出? 当然,渲染(input=“chapter1.Rmd”,output\u format=“pdf\u document”)可以完美地工作,但渲染(input=“chapter1.Rmd”,input=“chapter2.Rmd”,output\u fo

  • 问题内容: 如何使用Java合并两个WAV文件? 我试过了,但是没有正常工作,他们还有其他方法吗? 问题答案: 如果直接使用wav文件的字节,则可以在任何编程语言中使用相同的策略。对于此示例,我将假设两个源文件具有相同的比特率/数字通道,并且具有相同的长度/大小。(否则,您可能可以在开始合并之前对其进行编辑)。 首先看一下WAV规范,我在斯坦福课程网站上找到了一个很好的人: 常见的标头长度为44或

  • 我有一个完全使用Android Studio开发的应用程序。我需要创建第二个应用程序,这个我想用phonegapp来完成。这两个应用程序相互关联...所以理想情况下,我想将它们合并到同一个应用程序中...合并并不意味着它们需要一起工作。我希望它们一起下载(作为同一个应用程序),并且能够在应用程序中从一个下载到另一个...所以它们可以完全是两个独立的应用程序,但用户会认为它只是一个应用程序。我希望我

  • 问题内容: 我在Web应用程序中使用jquery,我需要将更多jquery脚本文件加载到单个页面中。 Google建议我将所有jquery脚本文件合并到一个文件中。 我怎样才能做到这一点? 问题答案: 在Linux上,您可以使用简单的Shell脚本将多个javascript文件合并为一个。它利用了Closure Compiler在线服务,因此生成的脚本也得到了有效压缩。

  • 假设我在同一目录中有9个.txt文件。price1.txt价格2.txt价格3.txt是来自不同位置的价格表,行和列名称相应地是经度和海拔高度。year4,5,6.txt和dis7,8,9.txt是与文本1中相同位置的年份和折扣表。 我想创建一个新的数据框,其中每列都是价格、年份、折扣的列表,来自文本1-9,具有相应的经度和姿态。 我能够使用 要读取文件的名称 我能够使用 将每个文件放在一起。 但