저는 NodeJS, ExpressJS 및 AngularJS로 몇 가지 작업을 수행했습니다.함수 프로토 타입을 포함하는 객체 전달/라우팅
현재 프런트 엔드에만 결과가 표시되도록 모든 처리가 백엔드에서 수행되어야하는 그래프 플로팅 프로젝트에서 작업하고 있습니다. 이를 위해 데이터 과 함수 프로토 타입을 모두 포함하는 일부 객체를 프론트 엔드에 라우팅해야합니다. 지금까지 나는이 마지막 부분에 어떤 행운이 없었습니다. 프론트 엔드에서 $http.get
으로 전화를 걸었을 때 내 루트가 노드 백엔드의 console.log
에 res.send(object)
으로 응답하면 프로토 타입 기능이있는 객체가 인쇄되지만 프런트 엔드의 브라우저에서 검색된 객체는 데이터 만 인쇄합니다/텍스트 부분을 삭제하고 모든 기능을 완전히 삭제합니다.
아래의 코드 조각은 요점을 얻을 참조하십시오
sample backend ExpressJS routes code snippet
// let's create an object,
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
// a function prototype
this.fooBar = function(){
return 'Yes';
}
};
// open up a route
app.get('/getObject', function(req, res){
var baby = new Person("John", "Doe");
console.log(baby)
//this console logs the following, as expected:
// Person { firstName: 'John', lastName: 'Doe', fooBar: [Function] }
// respond with the entire object
res.send(baby)
});
sample front end AngularJS code snippet
$http.get('/getObject')
.success(function(data){
console.log(data)
// THIS, however, only console logs the data, and discards the function
// Object {firstName: "John", lastName: "Doe"}
})
.error(function(err){
console.log(err)
});
그것의 나에게 문제가에서 있는지 알아 내려고 노력하고, 내 머리를 긁적 있어요 익스프레스/노드, 또는 각도의 끝에서, 아니면 둘 다? 약간의 조작을 위해 프런트 엔드에 전체 객체 (프로토 타입 함수 포함)를 전달하는 것을 정말 좋아하기 때문에이 부분에 대한 도움을 주시면 감사하겠습니다. 이것이 가능하지 않다면, 적어도 적절한 해결 방법의 방향으로 나를 가리 키십시오 :-). 감사!
일반적으로 유선을 통해 실행 스크립트를 보내는 것은 좋지 않습니다. 나는 당신이 당신의 디자인을 재고 할 것을 제안한다. 프론트 엔드는 JSON 형식으로 데이터를 수신해야합니다. – kennasoft
나는 뭔가가 디자인과 관련되어 있다는 것을 알았지 만 가능했는지 알고 싶었다. 결국이 접근법이 우스꽝스러운 것 같습니다 ... –