通过节点js express中的请求体访问变量

时间:2016-06-15 08:43:18

标签: jquery node.js

我是节点js的新手。我想通过节点js express来访问HTML页面中变量的值。

我在脚本标记中编写的HTML端代码是

[Theory, AutoNSubstituteData]
public void Add_ViewModelAsNull_ShouldThrowArgumentNullException(
    AbstractValidator<AddMerchantViewModel> merchValidator,
    MerchantsService service)
{
    // Arrange


    //here I don't know how to mock result of Validate. It is always null.
    merchantValidator.Validate(Arg.Any<AddMerchantViewModel>(), ruleSet: Arg.Any<string>()).Return(new ValidationResult()); 



    // Act
    Action action = () => service.Add(null);

    // Assert
    action.ShouldThrow<ArgumentNullException>();
} 

我用于js应用程序的软件包是

 $.ajax({
                        url: '/modulename',
                        type: 'POST',
                        dataType: 'JSON',
                        data: JSON.stringify([
                        {module:"abc"}]),

                        success: onMemberSucces,
                        error: onMemberError
                    });

我的js应用程序上的代码是

"dependencies": {
"all": "0.0.0",
"body-parser": "^1.15.1",
"cookie-parser": "^1.4.2",
"d3": "^3.5.17",
"express": "^4.13.4",
"jquery": "^2.2.4",
"jsdom": "^9.2.1",
"mssql": "^3.3.0",
"node-sqlserver-unofficial": "1.4.0",
"require": "^2.4.20",
"requirejs": "^2.2.0"
}

控制台上的输出是

app.use(express.static('D:/d3 project/project_part1/project_part1/'));
app.use(bodyParser.json());
var server = app.listen(8081);

app.post('/modulename', function (req, res, body) {
modulename = req.body;
console.log("hi \n"+ modulename);
console.log("hi "+ modulename.module);

});

我试图打印

hi [object Object]
hi undefined

这也会在控制台上打印undefined。我正在做一个非常粗心的愚蠢的错误,但我无法弄明白并花了相当多的时间。请帮帮我。谢谢。

2 个答案:

答案 0 :(得分:0)

此处不需要数组,您可以更改:

JSON.stringify([
    {
        module: "abc"
    }
]),

要:

JSON.stringify({
    module: "abc"
}),

答案 1 :(得分:0)

将数据更改为

data: {module:"abc"},

Jquery会照顾其余的, 在您的节点路由

console.log(req.body.module)