首页 > 解决方案 > 如何在 node js 中使用模块功能?

问题描述

我在load.js中导出了一个函数,并想在我的路由器文件中使用它。(老实说,我混淆了这个术语,因为我是 node js 的入门者)。

加载.js:

import demo from "./ml.js";

exports.loadData = async function() {
    var result = [];
    try {
        if(window.localStorage.getItem("imgcropped") !== null) {
            var image = document.getElementById('img-load');
            result = await demo(image);

            return result;
        }
    } catch (e) {
        console.log('ML load error: ' + e);
    }
}

server.js:

const express = require('express');
const cors = require('cors');
const app = express();
const fs = require('fs');
var load = require('./public/js/load.js');

app.use(express.static('public'));
app.use('/scripts', express.static('node_modules'));
app.use(cors({
    credentials: true
}));

app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.engine('html', require('ejs').renderFile);

const server = app.listen(3000, function() {
    console.log("Express server has started on port 3000");
});

app.get('/', function(req, res){
    res.render('home', {
    });
});

app.get('/load', function(req, res){
    //var idx = load.loadData(); <- That I want.
    res.render('load', {
    });
});

我补充说

var load = require('./path/to/load.js');

但它不起作用。pm2 日志中甚至没有错误消息。只是它在 Chrome 中显示“ERR_CONNECTION_REFUSED”。我可以在server.jsload.loadData中使用函数吗?或者请告诉我。

+++ 我在 AWS ec2 上工作。当我将 load.js 直接连接到 load.ejs 时,函数 loadData 运行良好。(不使用exports.module,只loadData()在load.js中执行)

标签: javascriptnode.js

解决方案


推荐阅读