我正在努力将Express中的对象从模块传递到我的应用程序。应用程序很简单。我从表单中获取输入,测试字符串然后返回null或对象。但是,我尝试了不同的方法,我的对象仍然未定义。寻找将对象从模块传递到我的应用程序的最有效方法。
以下是我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
}
}

答案 0 :(得分:0)
我发现您的代码存在一些问题,但最重要的是我认为您只是返回数据并且不执行任何操作。所以
console.log(checkString.dateResponse(formInput));
如果不是NaN,应该返回formInput。没有更多,因为它不能再进一步的原因。此外,“isNaN”不是检查数字是否为NaN的最佳方式(在许多非数字情况下失败)。检查nan是否为nan的最佳方法是比较
a !== a
因为只有NaN不等于自己。 (当然我正在假设原语,导致功能结果可能不相等)
如果你将检查移到顶部
,第三,你的代码可能会更整洁if(isNan(data) || data === null) {
return null
}
你会避免不必要的意图。您还可以将逻辑运算符移动到变量,并仅在if内部声明变量。 (但有时候只是矫枉过正)
const isNaN = data !== data;
const isNull = data === null || data === undefined;
const isNall = isNaN || isNull
if (isNall) {
return null
}