当前位置: 首页 > 知识库问答 >
问题:

404尝试在Express上使用参数生根时

岳出野
2023-03-14

我得到404错误当根参数,而所有其他的根定义我的根/users.js文件完美的工作,例如我得到的愿望结果,当我调用:localhost:3000/users/users.

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



    router.route('/users:user_id')
    .get(function(req, res) {
        console.log("attempting user");
        User.findById(req.params.user_id, function(err, place) {
            if (err)
                res.send(err);
            res.json(place);
        });
    })
    .put(function(req, res) {
        console.log("attempting to update user");
        User.findById(req.params.user_id, function(err, place) {

            if (err)
                res.send(err);

            user.username = req.body.name;
            user.visitedPlaces = req.body.visitedPlaces;
            user.likedItems = req.body.likedItems;
            //user.local.email= req.body.email;
            user.save(function(err) {
                if (err)
                    res.send(err);

                res.json({ message: 'user updated!' });
            });

        });
    })

    .delete(function(req, res) {
        User.remove({
            _id: req.params.user_id
        }, function(err, bear) {
            if (err)
                res.send(err);

            res.json({ message: 'Successfully deleted' });
        });
    });




    router.route('/users')

    // get all the users (accessed at GET http://localhost:8080/api/users)
    .get(function(req, res) {
        User.find(function(err, places) {
            if (err)
                res.send(err);

            res.json(places);
        });
    });



    router.route('/adduser')

    .post(function(req, res) {

        var user = new User();      
        user.password = user.generateHash (req.body.password);  // set the users name (comes from the request)
        user.username = req.body.username; 
        console.log(req.body)
        console.log("user name :"+req.body.username);
        user.save(function(err) {
            if (err)
                res.send(err);

            res.json({ message: 'user created!' });
        });


    });


module.exports = router;

我的应用程序。js配置

var express = require('express');
var path = require('path');
var favicon = require('static-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var session = require('express-session');

var passport = require('passport');
var FacebookStrategy = require('passport-facebook').Strategy;
var mongo = require('mongoskin');
var mongoose = require('mongoose');
var configDB = require('./config/database.js');
var port     = process.env.PORT || 3030;
var router = express.Router();  

// configuration ===============================================================
mongoose.connect(configDB.url); // connect to our database


 //Facebook app credentials
var FACEBOOK_APP_ID = '******09';
var FACEBOOK_APP_SECRET = '9a*******3';

//app secret for dev = 9adfcaa6d7989d8adc12852badcf69f3
// app ifd for dev = 492502667544609



var app = express();
app.use(express.static(path.join(__dirname, 'public')));
app.use(express.static(path.join(__dirname, 'app')));
//var routes = require('./routes/index');
require('./config/passport')(passport); // pass passport for configuration
var users = require('./routes/users');
var places = require('./routes/places');



    // view engine setup
app.set('views', path.join(__dirname, 'views'));
    app.set('view engine', 'jade');

// set up our express application
app.use(logger('dev')); // log every request to the console
app.use(cookieParser()); // read cookies (needed for auth)
app.use(bodyParser()); // get information from html forms

// required for passport
app.use(session({ secret: 'ilovescotchscotchyscotchscotch' })); // session secret
app.use(passport.initialize());
app.use(passport.session());


 app.use(favicon());

//app.use(flash()); // use connect-flash for flash messages stored in session


    // Make our db accessible to our router  WARNING THIS MUST BE PUT before the rooting stuff above


app.use('/api', router);
app.use('/places', places);
app.use('/users', users);
 // routes ======================================================================
require('./routes/routes.js')(app, passport); // load our routes and pass in our app and fully configured passport







app.get('/', function(req, res, next) {
  res.sendfile('./app/index.html');
});

/// catch 404 and forwarding to error handler
app.use(function(req, res, next) {
    var err = new Error('Not Found');
    err.status = 404;
    next(err);
});

/// error handlers

// development error handler
// will print stacktrace
if (app.get('env') === 'development') {
    app.use(function(err, req, res, next) {
        res.status(err.status || 500);
        res.render('error', {
            message: err.message,
            error: err
        });
    });
}

// production error handler
// no stacktraces leaked to user
app.use(function(err, req, res, next) {
    res.status(err.status || 500);
    res.render('error', {
        message: err.message,
        error: {}
    });
});

// test authentication
function ensureAuthenticated(req, res, next) {
if (req.isAuthenticated()) { console.log("is authenticated");
  return next(); }
  console.log("not authenticated");
res.redirect('/')
}


// launch ======================================================================

console.log('The magic happens on port ' + port)

module.exports = app;

共有1个答案

倪培
2023-03-14

用户之间添加斜杠:user_id

router.route('/users/:user_id')
                    ^---------here
 类似资料:
  • 我正在尝试获取一个简单的API请求来获取比特币值,在浏览器地址http://127.0.1:3000/中,在我的chrome浏览器中,我在浏览器上得到一个“无法获取/”,当我打开dev tools时得到一个404,上面写着“获取http://127.0.1:3000/404(Not Found)”。 当我访问http://127.0.0.1:3000/etf时,我得到了一个我需要的数据对象,所以我

  • 我正在设置一个laravel-echo-server,当我试图验证到一个私有通道时,我得到了错误:客户端无法被验证,得到了HTTP状态404。 授权公共渠道工程。 //channels.php //前端脚本验证到私有通道 //拉威尔回声服务器。json //引导。js 简单地说,我的laravel echo是通过应用程序加载的。在public/js中的js,引导程序中的所有库。js被加载进来。好的

  • 我正在使用Context.SendorderedBroadcast方法发送广播,并在到达ResultReceiver之前检查是否有人收到了广播。 下面是一段代码: 到目前为止,我只在搭载Android 2.1版本的摩托罗拉Defy手机上遇到过这种情况,但它也可能发生在其他手机上。 我在网上找不到任何关于它的参考资料,有人知道为什么会这样吗?谢谢!

  • 我正在阅读有关C中线程的教程并测试了以下代码: 我试图使用gcc和g编译此代码,但我总是遇到编译错误。 使用gcc-pthread thread_test.c: /tmp/ccmpQLyp。o: 在函数std::cout'thread_test.cpp: 你能帮忙吗?我必须做些什么才能让这段代码在Linux和Windows上运行吗?

  • 我有一个功能:

  • 假设您有一个简单的代码块,如下所示: 这个函数有两个参数和,分别表示请求和响应对象。 另一方面,还有其他函数带有第三个参数,称为。例如,让我们看看下面的代码: 我不明白的意义是什么,也不明白为什么要使用它。在那个例子中,如果id不存在,实际上在做什么?