Node.js无法发布请求

时间:2015-07-30 02:46:41

标签: javascript jquery node.js

我使用node.js准备了一个测试程序,并在浏览器中提交请求。服务器可以成功启动并成功连接到数据库。但是,浏览器返回"无法POST"当我在表单中输入一些值并将其发布到localhost:3000 / api / signup时找不到404。谁能告诉我我的代码中的哪一部分出了问题?谢谢!



//server.js
var express  = require('express');
var bodyParser  = require('body-parser');
var morgan  = require('morgan');
var config = require('./config');
var mongoose = require('mongoose');

mongoose.connect(config.database, function(err){
	if(err){
		console.log(err);
	}else{
		console.log('Connected to the database');
	}
});

var app = express();
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());
app.use(morgan('dev'));

var api = require('./app/routes/api')(app, express);
api.use('/api', api);

app.get('*', function(req,res){
	res.sendFile(__dirname + '/public/views/index.html');
});

app.listen(config.port, function(err){
	if(err){
		console.log(err);
	}else{
		console.log("Listening on port 3000");
	}
});






//user.js
var mongoose = require('mongoose');
var bcrypt = require('bcrypt-nodejs');

var Schema = mongoose.Schema;

var UserSchema = new Schema({
	name: String,
	username: {type: String, required: false, index: {unique: true}},
	password: {type: String, required: true, select: false}
});

UserSchema.pre('save', function(next){
	var user = this;
	
	if(!user.isModified('password')){
		return next();
	}

	bcrypt.hash(user.password, null, null, function(err, hash){
		if(err){
			return next(err);
		}

		user.password = hash;
		next();
	});
});

UserSchema.methods.comparePassword = function(password){
	var user = this;
	return bcrypt.compareSync(password,user.password);
}

module.exports = mongoose.model('User', UserSchema);




1 个答案:

答案 0 :(得分:1)

您没有任何POST处理程序。这一行......

app.get('*', function(req,res){

...仅处理GET个请求。您可以将其更改为app.all(..)(我在测试期间仅推荐),或者创建app.post(...)处理程序。

有关如何为各种HTTP谓词创建处理程序的详细信息,请参阅文档here