2015-05-08 127 views
0

我是一个平均堆栈开发的新手。我试图创建一个简单的用户注册API,并陷入了404错误。通过节点js访问我的API时出现404错误服务器

这里是我的代码文件

的package.json

{ 
    "name": "userStory", 
    "version": "1.0.0", 
    "description": "This is a user story App", 
    "main": "server.js", 
    "scripts": { 
    "test": "echo \"Error: no test specified\" && exit 1" 
    }, 
    "author": "Arindam Dawn", 
    "license": "ISC", 
    "dependencies": { 
    "bcrypt-nodejs": "0.0.3", 
    "body-parser": "^1.12.3", 
    "express": "^4.12.3", 
    "mongoose": "^4.0.2", 
    "morgan": "^1.5.2" 
    } 
} 

user.js的

var mongoose = require('mongoose'); 

var Schema = mongoose.Schema; 
var bcrypt = require('bcrypt-nodejs'); 

var UserSchema = new Schema({ 

    name : String, 
    username : {type: String, required: true, 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); 

api.js

var User = require('../models/user'); 

var config = require('../../config'); 

var secretKey = config.secretKey; 

module.exports = function(app, express){ 

    var api = express.Router(); 

    api.post('/signup', function(req, res){ 

     var user = new User({ 
      name: req.body.name, 
      username: req.body.username, 
      password: req.body.password 
     }); 

     user.save(function(err){ 
      if(err){ 
       res.send(err); 
       return; 
      } 

      res.json({message : 'User has been created'}); 
     }); 
    }); 


    return api 


} 

server.js

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

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

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"); 
    } 
}); 

config.js

module.exports = { 

    "database" : "mongodb://root:[email protected]:45531/userstory", 
    "port" : process.env.PORT || 3000, 
    "secretKey" : "addyrockz" 
} 

这里是我的目录结构

userStory 
    -app 
     -models 
     -user.js 
     -routes 
     -api.js 
    -node_modules 
    -public 
     -index.html 
    config.js 
    package.json 
    server.js 

我试图检查使用邮差API客户。我尝试使用post和url编码的url localhost:3000/api /注册。

我传递了三个字段作为名称,用户名和密码与各自的值,但我收到404错误。

回答

0

还有就是在server.js文件中的行一个错字没有22 相反api.use的将是app.use

+0

什么不同api.use和app.use之间? – usrNotFound

相关问题