나는 백엔드를 사용하는 방법을 배우고 있으므로 이것이 초등이라면 용서하십시오. 간단한 것을 놓친 것 같습니다. 배우기 위해 간단한 CRUD 앱을 만들려고하므로 나중에 웹 사이트에 통합 할 수있는 블로그 플랫폼을 만들기로 결정했습니다.
Angular, Node and Express, PostgreSql을 사용하고 있습니다.
데이터베이스에 항목을 성공적으로 게시 할 수 있습니다. Enter를 클릭하면 Postico에서 볼 수 있습니다. 항목이 성공적으로 게시되었는지 여부를 알리는 경고를 발생시키는 방법을 알아낼 수없는 것 같습니다. 지금은 .success 등에 대한 Angular 서비스의 경고가 있지만 잘못된 느낌이 있습니다. 내가 여기서 답을 찾고 있었을 때 다른 사람들이 컨트롤러에 그것을 가지고 있었지만 나는 그것을 시도했지만 작동하지 않았습니다.
내가 가진 관련 코드는 다음과 같습니다.
createEntry.html
<form ng-submit="createBlogEntry(blog)">
<h2>Title:</h2>
<input type="title" ng-model="blog.title"></input>
<br>
<h3>Author:</h3>
<input type="author" ng-model="blog.author"></input>
<br>
<h3>Photo:</h3>
<input type="imageUrl" ng-model="blog.imageUrl"></input>
<br>
<h3>Content:</h3>
<textarea type="content" rows="5" cols="50" ng-model="blog.content">
</textarea>
<br>
<button type="submit">Save Entry</button>
</form>
createEntryCtrl.js 각도 컨트롤러
angular.module("blog").controller("createEntryCtrl", function($scope, adminService) {
$scope.createBlogEntry = function(blog){
adminService.createBlogEntry(blog);
}
});
adminService.js Angular 서비스 :
angular.module("blog").service("adminService", function($http) {
this.createBlogEntry = function (blog) {
$http.post('/api/createBlogEntry', blog)
.success(function(data) {
alert("Entry Posted");
})
.error(function(data) {
alert("Error in Posting");
})
}
});
index.js 서버 인덱스 (관련없는 엔드 포인트 제외)
// EXTERNAL MODULES //
var express = require('express');
var bodyParser = require('body-parser');
var session = require('express-session');
var massive = require('massive');
// CONFIG //
var config = require('./config');
// EXPRESS //
var app = module.exports = express();
app.use(express.static(__dirname + './../dist'));
app.use(bodyParser.json());
// MASSIVE //
var massiveUri = config.MASSIVE_URI;
var massiveServer = massive.connectSync({
connectionString: massiveUri
});
app.set('db', massiveServer);
var db = app.get('db');
var dbSetup = require('./services/dbSetup');
dbSetup.run();
// CONTROLLERS //
var userCtrl = require('./controllers/userCtrl');
var blogCtrl = require('./controllers/blogCtrl');
// Blog Endpoints //
app.post('/api/createBlogEntry', blogCtrl.createBlogEntry);
// CONNECTIONS //
var port = config.PORT;
app.listen(port, function() {
console.log('Listening on port ' + port);
});
blogCtrl.js 노드 컨트롤러 :
var app = require('./../index');
var db = app.get('db');
module.exports = {
createBlogEntry: function(req, res, next) {
console.log(res);
var blog = req.body;
db.blogs.blog_create([blog.title, blog.author, blog.imageUrl, blog.content], function(err, blog) {
if (err) {
return res.status(500).send(err);
}
})
}
};
blog_create.sql SQL :
INSERT INTO blogs (title, author, imageUrl, content)
VALUES ($1, $2, $3, $4)
성공하면 2xx 코드 상태를 받아야 트리거됩니다.
이 시도 :
db.blogs.blog_create([blog.title, blog.author, blog.imageUrl, blog.content], function(err, blog) {
if (err) {
return res.status(500).send(err);
}else{
res.send(200); //Everything is ok !
}
});
이 도움을 바랍니다! 그리고 내 영어 죄송합니다!
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다