Javascript 在节点中导出会导致语法错误

Javascript 在节点中导出会导致语法错误,javascript,node.js,Javascript,Node.js,我有一个文件,controller.js,试图将功能导入app.js 我经常遇到语法错误: ,预期 预期的声明 不过,当我修复一个10多个弹出窗口时,我觉得修复起来很简单,所以有人能看看我的代码,看看哪里出了问题吗 app.js Promise.all([controller.firstFunction(), controller.secondFunction()]) .then(controller.thirdFunction); module.exports = { var exp

我有一个文件,controller.js,试图将功能导入app.js

我经常遇到语法错误:

,预期

预期的声明

不过,当我修复一个10多个弹出窗口时,我觉得修复起来很简单,所以有人能看看我的代码,看看哪里出了问题吗

app.js

Promise.all([controller.firstFunction(), controller.secondFunction()]) .then(controller.thirdFunction);
module.exports = {
    var express = require('express');
// var rp = require('request-promise');
var app = express();
// var request = require('request');
var nodePardot = require('node-pardot');
// Credential's for pardot API
var password = ';lu.88';
var userkey = 'kol;';
var emailAdmin = 'j.j@jj.co.uk';
//
// // Start the server
// app.listen(port);
// app.use(bodyParser.json()); // support json encoded bodies
// app.use(bodyParser.urlencoded({extended: true})); // support encoded bodies
// console.log('Test server started! At http://localhost:' + port); // Confirms server start
//
// app.use('/', router);


var firstFunction = function () {
    return new Promise(function (resolve) {
        setTimeout(function () {
            app.post('/back-end/test', function (req, res) {
                console.log(req.body);
                var login = req.body.LoginEmail;
                res.send(login);
                resolve({
                    data_login_email: login
                });
            });
            console.error("First done");
        }, 2000);
    });
};

var secondFunction = function () {
    return new Promise(function (resolve) {
        setTimeout(function () {
            nodePardot.PardotAPI({
                userKey: userkey,
                email: emailAdmin,
                password: password,
                DEBUG: false
            }, function (err, client) {
                if (err) {
                    // Authentication failed
                    console.error("Authentication Failed", err);
                } else {
                    // Authentication successful
                    var api_key = client.apiKey;
                    console.log("Authentication successful !", api_key);
                    resolve({data_api: api_key});
                }
            });
            console.error("Second done");
        }, 2000);
    });
};

function thirdFunction(result) {
    return new Promise(function () {
            setTimeout(function () {
                var headers = {
                    'User-Agent': 'Super Agent/0.0.1',
                    'Content-Type': 'application/x-www-form-urlencoded'
                };
// Configure the request
                var api = result[1].data_api;
                var login_email = result[0].data_login_email;
                var options = {
                    url: 'https://pi.pardot.com/api/prospect/version/4/do/read',
                    method: 'POST',
                    headers: headers,
                    form: {
                        'email': login_email,
                        'user_key': userkey,
                        'api_key': api
                    },
                    json: true // Automatically stringifies the body to JSON
                };

// Start the request
                rp(options)
                    .then(function (parsedBody) {
                        console.error(login_email, "Is a user, login pass!");

                    })
                    .catch(function (err) {
                        console.error("fail no such user");
                        // res.status(400).send()

                    });
                console.error("Third done");
            }, 3000);
        }
    );
}
};
controller.js

Promise.all([controller.firstFunction(), controller.secondFunction()]) .then(controller.thirdFunction);
module.exports = {
    var express = require('express');
// var rp = require('request-promise');
var app = express();
// var request = require('request');
var nodePardot = require('node-pardot');
// Credential's for pardot API
var password = ';lu.88';
var userkey = 'kol;';
var emailAdmin = 'j.j@jj.co.uk';
//
// // Start the server
// app.listen(port);
// app.use(bodyParser.json()); // support json encoded bodies
// app.use(bodyParser.urlencoded({extended: true})); // support encoded bodies
// console.log('Test server started! At http://localhost:' + port); // Confirms server start
//
// app.use('/', router);


var firstFunction = function () {
    return new Promise(function (resolve) {
        setTimeout(function () {
            app.post('/back-end/test', function (req, res) {
                console.log(req.body);
                var login = req.body.LoginEmail;
                res.send(login);
                resolve({
                    data_login_email: login
                });
            });
            console.error("First done");
        }, 2000);
    });
};

var secondFunction = function () {
    return new Promise(function (resolve) {
        setTimeout(function () {
            nodePardot.PardotAPI({
                userKey: userkey,
                email: emailAdmin,
                password: password,
                DEBUG: false
            }, function (err, client) {
                if (err) {
                    // Authentication failed
                    console.error("Authentication Failed", err);
                } else {
                    // Authentication successful
                    var api_key = client.apiKey;
                    console.log("Authentication successful !", api_key);
                    resolve({data_api: api_key});
                }
            });
            console.error("Second done");
        }, 2000);
    });
};

function thirdFunction(result) {
    return new Promise(function () {
            setTimeout(function () {
                var headers = {
                    'User-Agent': 'Super Agent/0.0.1',
                    'Content-Type': 'application/x-www-form-urlencoded'
                };
// Configure the request
                var api = result[1].data_api;
                var login_email = result[0].data_login_email;
                var options = {
                    url: 'https://pi.pardot.com/api/prospect/version/4/do/read',
                    method: 'POST',
                    headers: headers,
                    form: {
                        'email': login_email,
                        'user_key': userkey,
                        'api_key': api
                    },
                    json: true // Automatically stringifies the body to JSON
                };

// Start the request
                rp(options)
                    .then(function (parsedBody) {
                        console.error(login_email, "Is a user, login pass!");

                    })
                    .catch(function (err) {
                        console.error("fail no such user");
                        // res.status(400).send()

                    });
                console.error("Third done");
            }, 3000);
        }
    );
}
};

这是因为您将代码包装在对象{}标记中

你有几个选择,我的建议是使用这样的原型

var express = require('express');
// var rp = require('request-promise');
var app = express();
// var request = require('request');
var nodePardot = require('node-pardot');
// Credential's for pardot API
var password = ';lu.88';
var userkey = 'kol;';
var emailAdmin = 'j.j@jj.co.uk';
//
// // Start the server
// app.listen(port);
// app.use(bodyParser.json()); // support json encoded bodies
// app.use(bodyParser.urlencoded({extended: true})); // support encoded bodies
// console.log('Test server started! At http://localhost:' + port); // Confirms server start
//
// app.use('/', router);

function Functions(){};


Functions.prototype.firstFunction = function () {
    return new Promise(function (resolve) {
        setTimeout(function () {
            app.post('/back-end/test', function (req, res) {
                console.log(req.body);
                var login = req.body.LoginEmail;
                res.send(login);
                resolve({
                    data_login_email: login
                });
            });
            console.error("First done");
        }, 2000);
    });
};

Functions.prototype.secondFunction = function () {
    return new Promise(function (resolve) {
        setTimeout(function () {
            nodePardot.PardotAPI({
                userKey: userkey,
                email: emailAdmin,
                password: password,
                DEBUG: false
            }, function (err, client) {
                if (err) {
                    // Authentication failed
                    console.error("Authentication Failed", err);
                } else {
                    // Authentication successful
                    var api_key = client.apiKey;
                    console.log("Authentication successful !", api_key);
                    resolve({data_api: api_key});
                }
            });
            console.error("Second done");
        }, 2000);
    });
};

Functions.prototype.thirdFunction(result) {
    return new Promise(function () {
            setTimeout(function () {
                var headers = {
                    'User-Agent': 'Super Agent/0.0.1',
                    'Content-Type': 'application/x-www-form-urlencoded'
                };
// Configure the request
                var api = result[1].data_api;
                var login_email = result[0].data_login_email;
                var options = {
                    url: 'https://pi.pardot.com/api/prospect/version/4/do/read',
                    method: 'POST',
                    headers: headers,
                    form: {
                        'email': login_email,
                        'user_key': userkey,
                        'api_key': api
                    },
                    json: true // Automatically stringifies the body to JSON
                };

// Start the request
                rp(options)
                    .then(function (parsedBody) {
                        console.error(login_email, "Is a user, login pass!");

                    })
                    .catch(function (err) {
                        console.error("fail no such user");
                        // res.status(400).send()

                    });
                console.error("Third done");
            }, 3000);
        }
    );
}

module.exports = Functions;
然后,您将在需要的文件中创建该类的实例(在本例中为app.js)

从那里,您可以使用以下方法访问您的方法:

myFunctions.firstFunction();
但是,如果您想继续使用已经完成的方式,那么应该像这样使用对象结构

module.exports = {
   firstFunction : function()
   {
      //Function Body
   },
   secondFunction : function()
   {
      //Function Body
   }
}
您需要在对象内部使用对象表示法(module.exports):


导出依赖项和密码并不是真正有用的…

代码的问题是:

您在module.export中使用了var,这意味着您在export中声明的var无效

module.export应为json格式

请尝试以下代码:

var express = require('express');
// var rp = require('request-promise');
var app = express();
// var request = require('request');
var nodePardot = require('node-pardot');
// Credential's for pardot API
var password = ';lu.88';
var userkey = 'kol;';
var emailAdmin = 'j.j@jj.co.uk';
//
// // Start the server
// app.listen(port);
// app.use(bodyParser.json()); // support json encoded bodies
// app.use(bodyParser.urlencoded({extended: true})); // support encoded bodies
// console.log('Test server started! At http://localhost:' + port); // Confirms server start
//
// app.use('/', router);

module.exports = {
    firstFunction : function () {
        return new Promise(function (resolve) {
            setTimeout(function () {
                app.post('/back-end/test', function (req, res) {
                    console.log(req.body);
                    var login = req.body.LoginEmail;
                    res.send(login);
                    resolve({
                        data_login_email: login
                    });
                });
                console.error("First done");
            }, 2000);
        });
    },
    secondFunction : function () {
        return new Promise(function (resolve) {
            setTimeout(function () {
                nodePardot.PardotAPI({
                    userKey: userkey,
                    email: emailAdmin,
                    password: password,
                    DEBUG: false
                }, function (err, client) {
                    if (err) {
                        // Authentication failed
                        console.error("Authentication Failed", err);
                    } else {
                        // Authentication successful
                        var api_key = client.apiKey;
                        console.log("Authentication successful !", api_key);
                        resolve({data_api: api_key});
                    }
                });
                console.error("Second done");
            }, 2000);
        });
    },
    thirdFunction : function(result) {
        return new Promise(function () {
                setTimeout(function () {
                    var headers = {
                        'User-Agent': 'Super Agent/0.0.1',
                        'Content-Type': 'application/x-www-form-urlencoded'
                    };
        // Configure the request
                    var api = result[1].data_api;
                    var login_email = result[0].data_login_email;
                    var options = {
                        url: 'https://pi.pardot.com/api/prospect/version/4/do/read',
                        method: 'POST',
                        headers: headers,
                        form: {
                            'email': login_email,
                            'user_key': userkey,
                            'api_key': api
                        },
                        json: true // Automatically stringifies the body to JSON
                    };

        // Start the request
                    rp(options)
                        .then(function (parsedBody) {
                            console.error(login_email, "Is a user, login pass!");

                        })
                        .catch(function (err) {
                            console.error("fail no such user");
                            // res.status(400).send()

                        });
                    console.error("Third done");
                }, 3000);
            }
        );
    }
};

你没有得到语法错误的确切位置吗?你正在导出对象,而导出到对象中的代码对于JS中的对象来说是无效的语法。你不能简单地将代码复制到对象中。。。{var=syntax errorBtw我还想知道为什么要导出所需的依赖项?好的,谢谢大家的提示,代码在没有导出的情况下工作。我只是尝试将代码分离到不同的文件中,并在MVC设计中使用pattern@Jonas对不起,我不太明白你的意思。如果OP尝试了你的代码,但没有成功troller.firstFunction()它将失败,因此他可能认为代码不起作用,因此您可以添加一个how to use…@Jonas w,+1,并相应地进行编辑。Cheers@Adriani6看起来不错,我将运行此尝试,并开始工作,然后返回给你。我更喜欢这个答案,因为改进不仅解决了问题,而且改进了