[英]Post request not getting sent with Angular.js. What am i doing wrong?
所以我試圖從客戶端單擊獲取名稱,然后將名稱(我更改為json以便實際上能夠發送信息)發送給服務器。 現在服務器將其發送回,客戶端將其發布到索引頁面(即時通訊正在這樣做,以便我可以看到服務器獲取的數據)。 當我看到數據時,它顯示為[object Object]。 所以出事了,我希望有人能幫助我。
的index.html
<body>
<div ng-app="myApp" ng-controller="customersCtrl">
<table style="width:100%">
<tr ng-repeat="contact in databases.databases">
<td>{{ contact.name }} <button type="button"ng-click="addContactlist(contact.name)">Click Me</button></td>
<td>{{ contact.sizeOnDisk }} </td>
<td>{{ contact.empty }} </td>
</tr>
</table>
DB name clicked: <p ng-bind="DB_NAME"></p>
</div>
</body>
client.js
var app = angular.module('myApp', []);
app.controller('customersCtrl', function($scope, $http) {
console.log("controller connected");
function refresh(){
// create contacklist route
$http.get('/databases').success(function(response) {
console.log("recived data requested");
$scope.databases = response;
});
}
// Call refresh to init cantacklist
refresh();
// add Doc to table
$scope.addContactlist = function(contactItem) {
alert("Working ");
$http.post('/collection', JSON.stringify({'contactItem': contactItem})).success(function(response) {
$scope.DB_NAME = response ;
});
console.log("posted: "+contactItem);
};
});// Controller
server.js
var express = require('express');
var path = require('path'); //core module
var databaseUrl = "localhost:27017/DB"; // default env
var bodyParser = require('body-parser');
var Db = require('mongodb').Db,
MongoClient = require('mongodb').MongoClient,
Server = require('mongodb').Server,
ReplSetServers = require('mongodb').ReplSetServers,
ObjectID = require('mongodb').ObjectID,
Binary = require('mongodb').Binary,
GridStore = require('mongodb').GridStore,
Grid = require('mongodb').Grid,
Code = require('mongodb').Code,
assert = require('assert');
//configure app
var app = express();
var db = new Db('DB', new Server('localhost', 27017));
db.on('error', function (err) {
console.log('database error', err)
});
db.on('connect', function () {
console.log('database connected')
});
// store all html files in views
app.use(express.static(__dirname + '/views'));
// parses recived json input
app.use(bodyParser.json());
// store all js in Scripts folder
app.use(express.static(__dirname + '/scripts'));
// Technology not needed but good practice, especailly when serval people are working on it
app.get('/', function (req, res) {
res.sendFile('index.html');
});
// listen for contactlist get request, aka transfers the contacklist in mongo to client
app.get('/databases', function (req, res) {
console.log("-- recived GET request --");
db.open(function(err, db) {
// Use the admin database for the operation
var adminDb = db.admin();
// List all the available databases
adminDb.listDatabases(function(err, dbs) {
assert.equal(null, err);
assert.ok(dbs.databases.length > 0);
console.log(dbs);
res.json(dbs);
db.close();
});
});
});
// listen for contactlist get request
app.post('/collection', function (req, res) {
console.log("-- recived collection post request --");
console.log('req ' + req.body);
res.json(req.body);
db.open(function(err, db) {
// Grab a collection without a callback no safe mode
// once request is working will switch to re.body
var col1 = db.collection('DB');
});
});
// Implement a web server to listen to requests
app.listen(4444, function(){
console.log('ready on port 4444');
});
有修復
響應是一個對象,請嘗試以下操作:
DB name clicked: <p ng-bind="DB_NAME | json"></p>
json
過濾器以JSON表示法轉換對象: https : //docs.angularjs.org/api/ng/filter/json
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.