0
내 코드에 문제가 있습니다. 로컬 서버에 $ http 요청을하기 위해 코드를 배치하는 방법 및 위치를 모르겠습니다.
api.js
var express = require('express');
var router = express.Router();
var mongoose = require('mongoose');
var Place = mongoose.model('Place');
module.exports = function(app){
app.get('/api/place', function(req, res){
Place.find(function (err, places){
if (err)
res.send(err);
res.json(places);
});
});
};
router.route('/place')
.post(function(req, res) {
var place = new Place();
place.name = req.body.name;
place.address = req.body.address;
place.created_at = req.body.created_at;
place.save(function(err){
if (err){
return res.status(500).send(err);
}
return res.json({message: 'Place added', place});
});
})
.get(function(req, res){
Place.find(function(err, place){
if(err){
return res.send(500, err);
}
return res.status(200).send({place: place});
});
});
router.route('/place/:id')
.get(function(req, res){
Place.findById(req.params.id, function(err, place){
if(err)
return res.send(err);
res.json(place);
});
})
.put(function(req, res){
Place.findById(req.params.id, function(err, place){
if(err)
res.send(err);
place.name = req.body.name;
place.address = req.body.address;
place.created_at = req.body.created_at;
place.save(function(err, place){
if(err)
res.send(err);
res.json(place);
});
});
})
.delete(function(req, res){
Place.findByIdAndRemove(req.params.id, function(err){
if(err)
res.send(err);
res.json({message: 'Place removed!!!!!'});
});
});
module.exports = router;
script.js
// script.js
// create the module and name it scotchApp
var app = angular.module('scotchApp', ['ngRoute', 'ngResource']);
// configure our routes
app.config(function($routeProvider){
$routeProvider
// route for the home page
.when('/', {
templateUrl : 'home.html',
controller : 'mainController'
})
// route for the about page
.when('/about', {
templateUrl : 'about.html',
controller : 'aboutController'
})
// route for the contact page
.when('/contact', {
templateUrl : 'contact.html',
controller : 'contactController'
})
//route for the contact page
.when('/register', {
templateUrl : 'register.html',
controller : 'registerController'
})
//route for the login page
.when('/sign-in', {
templateUrl : 'sign-in.html',
controller : 'signinController'
});
});
app.factory('placeService', function($resource){
return $resource('/api/place');
});
// create the controller and inject Angular's $scope
app.controller('mainController', function($scope, $rootScope, $http) {
// create a message to display in our view
/* $scope.place = placeService.query();
$scope.newPlace = {name: '', address: '', created_at: ''};
$scope.place = function(){
$scope.newPlace.created_by = $rootScope.current_user;
$scope.newPlace.created_at = Date.now();
placeService.save($scope.newPlace, function(){ $scope.place = placeService.query();
$scope.newPlace = {name: '', address: '', created_at: ''};
}); */
$http.get('/api/place').success(function(data){
$scope.place = req.data.place;
console.log(data);
});
});
app.controller('placesController', function($scope, $http) {
var url = 'http://localhost:8080/api/places';
$http.get(url).success(function(data){
console.log(data);
});
});
app.controller('aboutController', function($scope) {
$scope.message = 'Look! I am an about page.';
});
app.controller('contactController', function($scope) {
$scope.message = 'Contact us! JK. This is just a demo.';
});
app.controller('registerController', function($scope) {
$scope.message = 'Join us! JK. This is just a demo.';
});
app.controller('signinController', function($scope) {
$scope.message = 'Login. This is just a demo.';
});
그렇게 내 작은 실수를 수정하시기 바랍니다, 프로그래밍에 초보자에서
var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/myproject');
require('./model/models')
var index = require('./routes/index');
var api = require('./routes/api');
var app = express();
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use('/index', index);
app.use('/api', api);
var port = process.env.PORT || 8080;
// catch 404 and forward to error handler
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
// error handlers
// development error handler
// will print stacktrace
if (app.get('env') === 'development') {
app.use(function(err, req, res, next) {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: err
});
});
}
// production error handler
// no stacktraces leaked to user
app.use(function(err, req, res, next) {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: {}
});
});
app.listen(port);
// shoutout to the user
console.log('Magic happens on port ' + port);
module.exports = app;
암을 app.js.
아래
가예 그래서 내가 서비스 나 내가 그들을 필요 제어기에서 각 서비스를 분리하는 경우, 데이터를 제공하는 공장을 필요 수단? app.js 또는 api.js @RajRj – JAEL
U는 원하는만큼의 서비스를 생성 할 수 있습니다. 필요할 때마다 컨트롤러에 주입하십시오. 컨트롤러에 서비스를 사용할 수있게되면 "서비스"내에 정의 된 메서드를 호출하여 "약속"을 반환 할 수 있습니다. "dataService"가 getEmp() 메소드가있는 내 SERVICE 인 예제를 공유했습니다. 컨트롤러에 "dataService"를 삽입하고 getEmp() 메소드를 호출하십시오 (예 : var then dataService.getEmp()). 이제 데이터를 가져올 수있는 PROMISE "THEN"이 있습니다. 더 명확하게하기 위해 예제를 따르십시오. 모든 서비스 JS 파일을 작성할 "services"폴더를 만들 수 있습니다 –