익스프레스의 오브젝트를 모듈에서 어플리케이션으로 전달하는 데 어려움을 겪고 있습니다. 응용 프로그램은 간단합니다. 양식에서 입력을 가져 와서 문자열을 테스트 한 다음 null 또는 객체를 반환합니다. 그러나, 나는 다른 접근 방식을 시도하고 나의 객체는 여전히 정의되지 않은 상태로 되돌아 온다. 모듈에서 객체로 객체를 전달하는 가장 효율적인 방법을 찾고 있습니다. 여기 익스프레스 모듈 - 오브젝트를 메인 어플리케이션으로 내보내기
는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
}
}
감사합니다. 나는 그 코드를 수정했다. console.log()를 사용하는 이유는 객체의 출력을 확인하기 위해서입니다. 그러나 아직 빈 개체가 나타납니다. 내 혼란은 timeStamp 객체를 전달하는 것과 관련이있다. 나는 돌아 오는 길에 빈 물건을 계속 얻는다. 문제점이 요청 메소드 또는 모듈에서 문자열을 점검하는지 확실하지 않습니다. – Vince
내가 말했던 것 외에도 영원한 것으로 보인다. 어쩌면 그 formInput 값? 나는 그것의 약한 방법을 확인합니다 -하지만 귀하의 모듈을 함수 안에 넣고 결과가 있는지 확인합니다. 그러나 나는 모든 것이 좋다고 확신한다. 디버거를 사용할 수도 있습니다. (node.js 디버거 참조). 따라서 중단 점을 지정하고 코드가 통과하는지 여부와 그 상태를 확인할 수 있습니다. – Mort
hmm .. 나는 여전히 함수에서 객체를 반환하는 데 어려움을 겪고 있습니다. 계속 검색해야합니다. 귀하의 통찰력에 감사드립니다. 그게 내 코드 정리에 도움이 됐어. – Vince