ノードアプリケーションがあります.3つのファイルがあり、ノードをMVCパターンで構造化しようとしています。ノードアプリケーションにMVCとインクルードファイルを使用する方法
私はすべての私が必要とし、私のserver.js私controller.jsの私routes.jsと私の機能のすべてのルートの中の変数を配置する方法をしたいです。
私のルータは問題なく機能します。 は、どのように私は私のサーバーにファイルをコントローラからの機能が含まれます
私が持っている:
- server.js
var configure = require('./router');
var express = require('express');
var app = express();
var port = process.env.PORT || 8080;
// get an instance of router
var router = express.Router();
configure(router);
var request = require('request');
var nodePardot = require('node-pardot');
var bodyParser = require('body-parser');
var rp = require('request-promise');
// 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
//
// // START THE SERVER
// // ==============================================
app.listen(port);
console.log('Server has started!! ' + port);
// apply the routes to our application
app.use('/', router);
- router.js `
module.exports = function (router) {
// route middleware that will happen on every request
router.use(function (req, res, next) {
// log each request to the console
console.log(req.method, req.url);
// continue doing what we were doing and go to the route
next();
});
// home page route (http://localhost:8080)
router.get('/', function (req, res) {
res.send('im the home page!');
});
router.get('/login', function (req, res) {
res.send('this is the login form');
})
// process the form (POST http://localhost:8080/login)
.post('/login', function (req, res) {
console.log('processing'); // shows on console when post is made
res.send('processing the login form!'); // output on postman
});
};
- controller.js
var password = 'gf.09';
var userkey = 'dfgg';
var emailAdmin = '[email protected]';
// 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
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);
}
);
}
// sequence of functions
Promise.all([firstFunction(), secondFunction()])
.then(thirdFunction);
var routers = require('./router');
var controller = require('./test');
// var controller = require('./test.js','./router');
var express = require('express');
var request = require('request');
var nodePardot = require('node-pardot');
var bodyParser = require('body-parser');
var rp = require('request-promise');
var app = express();
var port = process.env.PORT || 8080;
var router = express.Router();
routers(router);
controller(Promise);
と
module.exports = function (Promise) {
all functions
}
問題を試してみましたが、何
は、変数の一部がので、私のようなエラーが出controller.jsに利用できないです:
app.post( '/バックエンド/コントローラの、機能(REQ、RES){
^
私はあなたを得ました、私は前にこれを試していたが、動作することができませんでした。もう一度試してみてください。ありがとう – Beep
これまでに経験したエラーを言えればそれは素晴らしいでしょう –
ええ、そうです。あなたがエラーを受け取ったらもう一度やり直してください。あなたの回答を受け入れることができない場合には、回答を更新してください。 – Beep