簡體   English   中英

如何在NODE JS的一個server.js文件中運行不同的.js文件?

[英]how to run different .js file in one server.js file in NODE JS?

這是demo.js文件,我想在server.js文件中使用此文件,以便可以在一個服務器文件中使用不同的js文件。

Demo.js:

    app.get('/add User', function (req, res) {
    var MongoClient = mongodb.MongoClient;
    var url = 'mongodb://localhost:27017/project';
    MongoClient.connect(url, function (err, db) {
             var collection = db.collection('users');
            collection.find({name: 'shruti'}).toArray(function (err, result) {
                console.log(, result);
                    db.close();
        });

Server.js:

    var a = require('./demo.js');
    vr http=require("http");

    var server = http.createServer(function(request, response) {
      response.writeHead(200, {"Content-Type": "text/html"});
      response.write(a);
      res.end();});
    server.listen(7860);

可能的示例如下:

demo.js

var myModule = {
  defineRoutes: function(router){
    //do something...
  }
}

module.exports = myModule;

server.js

var myModule = require('demo.js');
myModule.defineRoutes(router);

如前所述,您需要導出。 當您這樣做時:

var item = require("mymodule");

Require返回一個對象,該對象是給定文件的module.exports值的引用-在您的情況下為demo.js。

您可以按照某些人向您展示的方式編寫模塊。 因為它是封裝的,所以您基本上可以確定什么是公共的或可以調用的。 幾種寫方法-您也可以這樣做:

module.exports = {
  yourCall: function () {
     console.log("stuff here");
  }
};

正如@ishann所說的那樣,他死在這里,您正在寫一些您認為可能已填充的內容。 進入數據庫並返回是一個異步調用-因此需要花一些時間才能執行該操作,然后返回結果。

根據您的結構-理想情況下,您想要做的是分配路由(“ / addUser”),該路由將響應對象傳遞給您:

app.get('/add User', function (req, res) {
var MongoClient = mongodb.MongoClient;
var url = 'mongodb://localhost:27017/project';
MongoClient.connect(url, function (err, db) {
         var collection = db.collection('users');
        collection.find({name: 'shruti'}).toArray(function (err, result) {
            console.log(, result);
                db.close(); 
                 // set the type
                 res.writeHead(200, {"Content-Type": "application/json"});
                 res.write(result);

    });

看起來您的代碼需要一些重組,但是分開考慮是件好事。 您可能還想將Express作為節點的框架簽出。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM