Expressオブジェクトをモジュールからアプリケーションに渡すことに苦労しています。アプリケーションは簡単です。私はフォームから入力を受け取り、文字列をテストし、nullまたはオブジェクトを返します。しかし、私は別のアプローチを試して、私のオブジェクトはまだ未定義に戻ってきます。モジュールからオブジェクトにオブジェクトを渡す最も効率的な方法を探しています。Expressモジュール - メインアプリケーションへのオブジェクトのエクスポート
ここに私のapp.jsのコード
var app = express();
var path = require('path');
var router = express.Router();
var checkString = require('./checkString.js');
//Test Server Connection
app.listen(3000, function() {
console.log('Example app listening on port 3000!');
});
//Set Use
app.use(bodyParser.urlencoded({
extended: false
}));
app.use(bodyParser.json());
app.use(router);
//Set Routes
app.set('view engine', 'ejs');
app.set('views', path.join(__dirname, './views/pages'));
//GET Method
router.get('/', function(req, res) {
//Renders EJS Template and variables
res.render('index');
});
//Receive User Input from Form
//Post Request
router.post('/', function(req, res) {
//Check Form Input Results
var formInput = req.body.inputText;
var ReqMethod = req.method;
console.log(`Method: ${ReqMethod}`);
console.log(`Body: ${formInput}`);
//Assign form data to a variable after calling a function
checkString.dateResponse(formInput);
//res.json(checkString.timeStamp);
res.end();
});
ここに私のモジュールのコード( 'checkString.js')
//var exports = module.exports {};
var moment = require('moment');
//Create TimeStamp Object to Export to Server.js
exports.timeStamp = function(unix, natural) {
this.unix = unix;
this.natural = natural;
}
//Function Working in Chrome Console
exports.dateResponse = function(data) {
//Check The Date
if (isNaN(data)) {
return null
} else {
return data;
}
//Update timeStamp object with time/date
if (data !== null) {
var unix = moment(x).unix();
var natural = moment(x).format('MMM Do, YYYY');
return timeStamp(unix, natural);
} else {
return null
}
}
[OK]をお寄せいただきありがとうございます。私はこれらの調整を自分のコードにしました。私がconsole.log()を使用しているのは、オブジェクトからの出力をチェックするためです。しかし、私はまだ空白のオブジェクトを取得しています。私の混乱は、timeStampオブジェクトを渡すことに関連しています。私は私の帰りに空白のオブジェクトを取得し続けます。問題がリクエストメソッドにあるか、文字列をチェックするモジュールにあるかどうかは不明です。私が言ったこと以外に、 – Vince
の常連はうまく見えます。多分あなたのformInput値ですか?私は弱いチェック方法を知っていますが、あなたのモジュールを関数の中に入れ、結果があるかどうかを確認します。しかし、私はかなり良いことは確かです。デバッガを使用することもできます。 (node.jsデバッガを参照)、ブレークポイントを割り当て、コードが通過するかどうかとその状態を確認します。 – Mort
hmm ..私はまだ関数からオブジェクトを返すのに苦労しています。探し続ける必要があります。あなたの洞察に感謝します。それは私のコードをきれいにするのを助けた – Vince