小编MrM*_*ado的帖子

在express.js中,req.files是未定义的

我尝试将png上传到我的node.js服务器,但每次req.files.avatar调用时都会出现错误并说出来TypeError: Cannot read property 'avatar' of undefined.

upload node.js express

8
推荐指数
2
解决办法
6697
查看次数

使用node.js和express的JQuery Ajax发布请求

我试图使用JQuery向我的Node.JS和Express中的Node.JS服务器发出AJAX post请求,但它不起作用!

var express = require('express')
var app = express();
app.listen(8888);

app.configure(function(){

   app.use(express.bodyParser());
   app.set('views',__dirname + '/views');
   app.set('view engine', 'ejs');
   app.use(express.static(__dirname + '/public'));
   app.use(express.cookieParser());
   app.use(app.router);

});

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

   res.render('ajax.ejs');

});

app.post('/ajax', express.bodyParser(), function (req, res){

   console.log(req);
   console.log('req received');
   res.redirect('/');

});
Run Code Online (Sandbox Code Playgroud)

这是ajax.ejs:

<html>
<head>
  <script src="http://code.jquery.com/jquery-1.6.2.min.js"></script>    
  <script type="text/javascript">

      $('#enter').click(function(){  

     $.ajax({ 
           url: '/ajax',
           type: 'POST',
           cache: false, 
           data: { field1: 1, field2: 2 }, 
           success: function(data){
              alert('Success!')
           }
           , error: function(jqXHR, textStatus, err){
               alert('text status '+textStatus+', err '+err)
           } …
Run Code Online (Sandbox Code Playgroud)

ajax jquery post node.js express

7
推荐指数
2
解决办法
2万
查看次数

使用Express node.js接收带有post表单的req.body为空

我有一个简单的表单,它使用Express将POST数据发送到我的Node.JS服务器.这是形式:

<form method="post" action="/sendmessage">
  <div class="ui-widget">
      <input type="text" id="search" data-provide="typeahead" placeholder="Search..." />
  </div>
  <textarea id="message"></textarea>
</form>
Run Code Online (Sandbox Code Playgroud)

ui-widget和输入与typehead来自Twitter的自动完成库相关联.这就是我在服务器中处理POST请求的方式:

app.post('/sendmessage', function (req, res){

  console.log(req.body);

  usermodel.findOne({ user: req.session.user }, function (err, auser){

        if (err) throw err;

        usermodel.findOne({ user: req.body.search }, function (err, user){

            if (err) throw err;

             var message = new messagemodel({

                  fromuser: auser._id,
                  touser: user._id,
                  message: req.body.message,
                  status: false

             });

             message.save(function (err){

                  if (err) throw err;

                  res.redirect('/messages')

             })

        });

   });

});
Run Code Online (Sandbox Code Playgroud)

控制台显示"{}",然后显示错误req.body.search,因为search未定义.我不知道这里发生了什么,这不是与typehead输入相关的问题.解决这个问题的任何方法......?

谢谢你的进步!

forms post node.js express

5
推荐指数
3
解决办法
2万
查看次数

不能使用$ match与mongoose和聚合框架

这是我的架构:

var userschema = new mongoose.Schema({

  user: String,
  follow: [String],
  imagen: [{ 

              title: String,
              date: { type: Date, default: Date.now }

           }]
 });
Run Code Online (Sandbox Code Playgroud)

这是代码:

 usermodel.findOne({ user: req.session.user }, function (err, user){
  usermodel.aggregate({$unwind: '$imagen'}, 
                   {$match: { _id: { $in: user.follow } }}, 
                   {imagen: true}, 
                   {$sort: {'imagen.date': 1}}, 
                    function (err, images){

                     console.log(images);              

                      res.render('home.ejs', {

                       user: user,
                       following: images

                      });
   });
  });
Run Code Online (Sandbox Code Playgroud)

follow包含了用户的_id.

代码有效,除非我包含$match.我使用$match过滤结果,只获取我正在关注的用户的图像,但是console.log告诉我aggregate搜索的结果是未定义的,但是当我不写$match查询时,我得到了图像,但我获得了所有图像,而不仅仅是我正在关注的用户的图像.

这有什么解决方案......?

谢谢你的进步!

编辑:

var express = require('express'); …
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb node.js express

4
推荐指数
1
解决办法
1万
查看次数

使用Node.JS express和AJAX进行JQuery自动完成

这是HTML:

<!DOCTYPE html>
<html>
<head>

<link rel="shortcut icon" href="/favbar.png" />


<!-- JavaScript -->
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.1/themes/base/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.1/jquery-ui.js"></script>
<script type="text/javascript">
$(function () {

    $("#search").autocomplete({

        source: function( request, response ) {
          $.ajax({
              url: "/search",
              dataType: "jsonp",
              data: {
                 featureClass: "P",
                 style: "full",
                 maxRows: 12,
                 term: request.term
              },
              success: function( data ) {
                  response( $.map( data.results, function( item ) {
                       return {
                          label: item,
                          value: item
                       }
                  }));
             }
          });
       }

    });

  });
</script>
<script src="/stylesheets/bootstrap/js/bootstrap.min.js"></script>
<!-- CSS --> …
Run Code Online (Sandbox Code Playgroud)

ajax jquery mongoose node.js express

1
推荐指数
1
解决办法
9903
查看次数

匿名函数和参数

function foo() {
    var bar = 'no'
    setInterval(function() { console.log(bar); }, 1000);
}
Run Code Online (Sandbox Code Playgroud)

当我执行这段代码时,我得到以下输出:no,所以输出是正确的.但是当我执行下一段代码时,当我将函数bar作为参数传递给该匿名函数时,我不知道为什么输出是undefined

function foo() {
    var bar = 'no'
    setInterval(function(bar) { console.log(bar); }, 1000);
}
Run Code Online (Sandbox Code Playgroud)

如果我将变量作为参数传递,为什么未定义?如果bar在匿名函数中也有一个变量调用,我知道该变量将被内部函数值重写,但我无法理解这种行为

javascript performance

1
推荐指数
1
解决办法
126
查看次数

标签 统计

express ×5

node.js ×5

ajax ×2

jquery ×2

mongoose ×2

post ×2

forms ×1

javascript ×1

mongodb ×1

performance ×1

upload ×1