NodeJS를 처음 접했고 Express 4를 처음 사용하는 경우 명령 줄 응용 프로그램을 중심으로 간단한 RESTful 프론트 엔드를 작성하려고합니다. 궁극적으로 하나의 GET과 하나의 POST가 필요하며 POST는 약 3 ~ 4 개의 다른 매개 변수를 처리합니다. GET은 모든 기본 매개 변수를 사용하여 명령 줄 응용 프로그램을 호출해야합니다.이 매개 변수는 기본적으로 상태 확인이며 완료시 종료 상태를 반환합니다. POST는 명령 줄에서 POST 매개 변수를 전달합니다. 이 기본적으로 child_process.execFile() 같은 비동기 호출을 호출하는 알고 있지만 콜백 함수 내에서 실제로 응답을 반환하는 방법을 알아낼 수 없습니다.NodeJS/Express 외부 응용 프로그램의 GET 종료 상태
MongoDB에 대한 필요성이 없어 시작점으로 사용한 튜토리얼입니다. 따라서 기본적으로 서버를 시작한 지점까지 따라갔습니다. 이 시점에서, 나는 꽤 길을 잃었다. 나는 항상
는 는var express = require('express'); // call express
var app = express(); // define our app using express
var bodyParser = require('body-parser');
var child_process = require('child_process');
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
var port = process.env.PORT || 8080; // set our port
var router = express.Router(); // get an instance of the express Router
router.get('/', function(req, res) {
res.json({ message: 'hooray! welcome to our api!' });
});
router.get('/myapp/status', function(req, res) {
console.log(req.user);
child_process.execFile(
'casperjs',
['myfile.js', '--cmd="Status"', '--user="myuser"', '--pass="#mypass"'],
null,
function(response) {
// ???
}, res);
});
app.use('/api', router);
app.listen(port);
console.log('Magic happens on port ' + port);
는
을하지만 어떻게 익명 콜백 함수가 입술 어떤 생각을 가지고 있습니까? 꽤 비슷한 아이디어를 시도해 보았습니다. "res에는 멤버 함수가 없습니다."(또는 그 효과가있는 것)와 함께 항상 오류가 발생했습니다. res에 대한 참조를 콜백에 전달하는 방법이 있습니까? – qwertymodo
범위 때문에 부모 변수는 자식 익명 함수에서 액세스 할 수 있습니다. 나는 그것을 시도하고 작동합니다. –
좋아, 콜백이 호출되지 않는 것 같습니다. 그냥 확인하기 위해, 나는 외부 명령이 호출하고 있다고 가정하고 올바른 구문을 얻었 는가? 'casperjs myfile.js --cmd = "Status"--user = "myuser"--pass = "# mypass"' – qwertymodo