小编rit*_*ter的帖子

使用reactjs实施Facebook API登录

我正在使用Facebook的Javascript SDK进行身份验证.我已经能够正确导入SDK并在我的页面上添加了一个Like按钮.但是,facebook登录按钮必须包含在标签中:

<fb:login-button/>
Run Code Online (Sandbox Code Playgroud)

我目前将Facebook登录教程中的所有代码都粘贴到我的index.html中,这是我项目中唯一包含React应用程序的html文件.但是,我需要将具有实际登录按钮的最后一部分放入我的React组件中.当我尝试这样做时,我收到以下错误:

ReactifyError: /Users/ritmatter/reps/js/components/Signup.jsx: Parse Error: Line 82: Unexpected end of input while parsing file: /Users/ritmatter/reps/js/components/Signup.jsx
sdk.js:61 The "fb-root" div has not been created, auto-creating
ping?client_id=894010190618709&domain=localhost&origin=1&redirect_uri=http%3A%2F%2Fstatic.ak.facebo…:1 Given URL is not allowed by the Application configuration.: One or more of the given URLs is not allowed by the App's settings.  It must match the Website URL or Canvas URL, or the domain must be a subdomain of one of the App's domains.
Run Code Online (Sandbox Code Playgroud)

如何让登录按钮做出反应?

javascript facebook facebook-javascript-sdk reactjs

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

Mongo计算一组文档的每个值的出现次数

我有一些这样的文件:

{
  "user": '1'
},
{ "user": '1'
},
{
  "user": '2'
},
{
  "user": '3'
}
Run Code Online (Sandbox Code Playgroud)

我希望能够获得一组所有不同的用户及其各自的计数,按降序排序.所以我的输出将是这样的:

{
  '1': 2,
  '2': 1,
  '3': 1
}
Run Code Online (Sandbox Code Playgroud)

我认为这可以通过Mongo aggregate()来完成,但是我在为此找出正确的流程时遇到了很多麻烦.

mongodb mongodb-query

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

Jasmine有createSpy()返回模拟对象

我正在尝试模拟一个响应对象,它看起来像这样:

var res = {
  status: jasmine.createSpy().andReturn(this),
  send: jasmine.createSpy().andReturn(this)
}
Run Code Online (Sandbox Code Playgroud)

这将返回jasmine对象.我真的想要返回包含模拟函数的原始res变量.那可能吗?我主要是将这个实现到包含res.status().send()的单元测试函数,这被证明是困难的.

javascript unit-testing express jasmine

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

使用prerender.io与ReactJS进行SEO

我意识到使用react-router的我的ReactJS应用程序没有任何外部链接.搜索引擎无法识别该网站有很多链接内容.Prerender.io似乎是一个很好的解决方案,但我不能让它为我的ReactJS应用程序工作.

prerender.io可以与ReactJS一起使用吗?如果没有,是否还有另一种改善我的网站搜索引擎优化的好方法,而不需要完成所有的渲染服务器端?

编辑:进一步挖掘,我意识到这里的问题是react-router默认使用"#",而不是"#!".是否有可能使react-router与"#!"一起工作?

seo prerender reactjs react-router

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

Jasmine spyOn mongoose save

我想模拟Mongoose模型的save()函数.我要测试的函数在名为user.js的文件中看起来像这样:

var User = import('User.js')

post: function(req, res) {
  var user = new User({
      password    : req.body.password,
      email       : req.body.email,
  });
  user.save( function(err) {
    if (err) {
      ....
    } else {
      ....
    }
  });
Run Code Online (Sandbox Code Playgroud)

我试着在另一个名为user_spec.js的文件中编写一个看起来像这样的测试:

var Hander = require('user.js')

it('works properly', function() {
  spyOn(User, 'save').andReturn(null)
  Handler.post(req, res);
});
Run Code Online (Sandbox Code Playgroud)

但这给了我错误:

save() method does not exist
Run Code Online (Sandbox Code Playgroud)

我已经做了一些挖掘,看起来User模型本身没有save()方法,实例就是这样.这意味着我必须模拟User的构造函数,但是我遇到了很多麻烦.其他帖子指的是如下声明:

spyOn(window, User)
Run Code Online (Sandbox Code Playgroud)

解决这个问题,但在NodeJS中,全局(这里的窗口等效),没有User,因为我导入是一个变量.是否有可能模拟构造函数给我一些模拟的save()?我还看了一个名为rewire的npm模块,但是我希望我可以在没有模拟和替换处理程序中的整个用户模块的情况下做到这一点.

javascript mongoose jasmine

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

Nodemon --ext 任何文件类型

我有一个我想观看的图像目录。目录可以有许多不同的文件类型。我知道您可以为 nodemon 指定要监视的文件类型列表,但是如何告诉 nodemon 监视目录中的所有文件?我的命令现在看起来像这样:

"watch-images": "nodemon --ignore build/ -e jpg,png --watch images --exec 'cp -a images/ build/images/'"
Run Code Online (Sandbox Code Playgroud)

我可以用什么来替换jpg、png?

javascript build nodemon

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

React-Router在ajax调用中对setState()抛出Invariant Violation

我正试图找到一个棘手的错误,我正在使用react-router.出于某种原因,在顶级页面路由中设置我的一个子组件的状态会导致以下错误:

Uncaught Error: Invariant Violation: Missing "userId" parameter for path "/user/:userId" 
Run Code Online (Sandbox Code Playgroud)

无论我是否导航到该路径,都会发生此错误.我的路线看起来如下:

var routes = (
  <Routes>
    <DefaultRoute handler={LoginPage} />
    <Route name="login" handler={LoginPage} />
    <Route name="home" handler={HomePage} />
    <Route name="category" path="/category/:category" handler={CategoriesPage}/>
    <Route name="profile" path="/user/:userId" handler={ProfilePage}/>
  </Routes>
);
Run Code Online (Sandbox Code Playgroud)

我的ajax调用看起来像这样:

var Feed = React.createClass({
  getInitialState: function() {
    return { feedItems: [] };
  },

  componentDidMount: function() {
    $.ajax({
    url: '/api/transactions',
    dataType: 'json',
    success: function(transactions) {
      this.setState({ feedItems: transactions });
    }.bind(this),
    error: function(xhr, status, err) {
      console.error(this.props.url, status, err.toString());
    }.bind(this)
  });
},

.... …
Run Code Online (Sandbox Code Playgroud)

ajax reactjs react-router

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

将图像URI上传到Cloudinary

我已经做了一些查看Cloudinary API并上传NodeJS的示例,看起来服务器端上传使用文件路径.同时,客户端上传需要前端输入标记.我已经有一个前端供用户根据自己的喜好选择和裁剪图片,这给了我一个数据URI.我想将此文件保存到Cloudinary,而无需使用其内置的前端选项.这可能吗?这基本上意味着我可以调用某种可以获取URI或文件blob的上传函数.

javascript cloudinary

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