Ich lerne AngularJS und ich möchte wissen, wie man es richtig mit Node ExpressJS verbindet.ExpressJS AngularJS POST
Dies ist mein Controller:
app.controller('view1Ctrl', function($scope, $http) {
$scope.sub = function(desc) {
console.log(desc);
$http.post('/view1', desc).
then(function(response) {
console.log("posted successfully");
}).catch(function(response) {
console.error("error in posting");
})
}
});
Und das ist mein server.js:
app.post('/view1', function(req, res) {
console.log(res.desc);
res.end();
});
Ich habe nicht Körper-Parser verwendet. Ich verstehe nicht, wie Body-Parser verwendet wird, um die Formularwerte aus dem HTML zu erhalten, wenn ich eine Funktion im Controller verwende. Erhalten die Werte aus dem HTML beim Klicken auf "Senden", wenn Body-Parser verwendet wird, oder werden die Werte von der Funktion erhalten, an die ich die Formularwerte als Argumente übergebe. Bitte sag mir wie es gemacht wird.
EDIT: das ist mein html:
<form>
<input type="text" ng-model="desc" placeholder="Enter desc" />
<button class="btn btn-primary" ng-click="sub(desc)">Submit</button>
</form>
EDIT 2: voll server.js Code:
var express = require('express'),
http = require('http'),
path = require('path'),
bodyParser= require('body-parser');
var app = express();
app.set('port', 3000);
app.use(express.static(path.normalize(__dirname + '/')));
app.use(bodyParser.json()); // for parsing application/json
app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded
app.get('/main', function(req, res) {
var name = 'MyNameFromServer';
res.send(name);
});
app.post('/view1', function(req, res) {
console.log(res.body.desc);
res.end();
});
http.createServer(app).listen(app.get('port'), function() {
console.log('Express server listening on port ' + app.get('port'));
});
EDIT 3: Edited-Controller app.js
app.controller('view1Ctrl', function($scope, $http) {
$scope.sub = function() {
console.log($scope.formData);
$http.post('/view1', $scope.formData).
success(function(data) {
console.log("posted successfully");
}).error(function(data) {
console.error("error in posting");
})
};
});
Was ist mit dem ng-Klick auf den Knopf? Soll es das Desc noch einmal passieren, oder soll ich es einfach so nennen, dass ich nichts übergebe? – v1shnu
Sie brauchen es nicht, Sie haben den '$ scope' Ich aktualisiere die Antwort. –
Nach allen Änderungen heißt es TypeError: Kann die Eigenschaft 'desc' von undefined nicht lesen. – v1shnu