0
質問は単純な方法で変数を他のjsファイルに渡す方法です(module.exportsだけのルートはありません)。nodejs module - express module.export - 変数を他のファイルに渡す方法は?
私のファイル構造は、この(非常にシンプルな人気のある構造)のようになります。
ROUTES (folder)
--form.js
--test.js
VIEWS (folder)
--form.ejs
--test.ejs
index.js
package.json
index.jsファイル(標準特急アプリファイル):
var express = require('express');
var body_parser = require('body-parser');
var form = require('./routes/form.js');
var test = require('./routes/test.js');
var app = express();
app.set('view engine', 'ejs');
app.use(body_parser.urlencoded({extended:true}));
app.use('/', form);
app.use('/test', test);
var port = 3700;
var server_listen_on = app.listen(port, function()
{
console.log('Server is listening on port: ' + port);
});
form.jsファイル:
var express = require('express');
var body_parser = require('body-parser');
var router = express.Router();
var preciousData = 'var precious_data - from form.js file';
module.exports =
{
exportsPreciousData : preciousData,
router : router
};
test.jsファイル:
ファイルwelcome.ejsvar express = require('express');
var request = require('request');
var router = express.Router();
var requireFormjs = require('./form.js');//({exportsPreciousData : exportsPreciousData});
//console.log(requireFormjs.exportsPreciousData); // I guess console.log is faster then module.exports... but
router.get('/', function(req, res, next)
{
res.render('welcome', {test : requireFormjs.exportsPreciousData});
});
// why this doesn't work - I need to use middleware function - could you provide simple working example?
//(I guessing that even if console.log print data after module.exports machinery I would still need middleware, right?)
module.exports = router;
:(速達すべてが正常に動作せず)
<!DOCTYPE html>
<html>
<head>
<title>welcome</title>
</head>
<body>
<%= test %>
</body>
</html>
...なぜそれが動作しないのですか?
ok、働いて、ありがとう! – webmasternewbie