提问者:小点点

如何在JavaScript中将对象从一个文件传递到另一个文件?


我在index.js中有节点js服务器文件(index.js)和客户机文件(orderlist.js),我正在获取promise对象,像这样

function returnOrderArray() {
    var i = 0;
    const promise = new Promise((resolve, reject) => {
        connection.query('SELECT * FROM orders', function(error, results) {
            while (i < results.length) {

                order.id[i] = results[i].id;
                order.wavetype[i] = results[i].wavetype;
                order.color[i] = results[i].color;
                order.thick[i] = results[i].thick;
                order.readydate[i] = results[i].readydate;
                order.createdate[i] = results[i].createdate;
                order.manager[i] = results[i].manager;

                i++;
            }
            resolve(order);
            // console.log(order);


        });
    });
    return promise;
}

然后我想把它传递给其他js文件。我试着用Module.Exports来做这件事

app.get('/orderlist', checkUserSession, async function(request, response) {
    returnOrderArray().catch(error => console.log(error)).then((() => {
        module.exports.order = order;
        response.render("orderlist.ejs", { username: request.session.username });
    })).catch(error => console.log(error));
});

然后将其导入orderList.js中

var ind = require('../../index')


function asd() {
    alert(ind.order);
}

但似乎不起作用。

我做错了什么?将对象传递给JS中的其他文件的最佳方法是什么?

哦,还有文件体系结构

费尔厄奇


共1个答案

匿名用户

您需要导出模块,如下所示:module.exports=ReturnorderArray

试试这个,

orderList.js

const returnOrderArray = () => {...some code..}
module.exports = returnOrderArray

index.js

const returnOrderArray = require('./path/to/orderlist.js')

const run = async() => {
const orderlist = await returnOrderArray() // use await or then as you prefer
}
run()

async_await链接(如果好奇的话)!

希望这能奏效:)