簡體   English   中英

在Nginx反向代理上使用mithril.js進行一些請求

[英]Doing some requests using mithril.js on nginx reverse proxy

我是前端的新手,我在業余時間學習mithril.js,我認為這很棒。 剛才我在閱讀有關m.request()但有些東西我沒有得到。 我放下了一個組件,該組件從服務器的oninit函數中獲取一些數據以填充變量。 view使用相同的變量來顯示數據,但是一旦請求返回,就不會呈現數據。 這是代碼:

const m = require("mithril");
import Stuff from './stuff.js';
var WelcomePage = {
  stufflist: [],
  oninit: function(vnode) {
    m.request({
      method: "GET",
      url: "wfd/stuff",
      data: {offset:0, limit:5}
    }).then((result) => {
      WelcomePage.stufflist = result;
    });
  },
  view: function(vnode) {
    return (
      <div>
        Welcome! Have your stuff :)
        <ul>
        {
          WelcomePage.stufflist.map(stuff => (
            <li>
              <Stuff stuff = {stuff}></Stuff>
            </li>
          ))
        }
        </ul>
      </div>
    );
  }
}
export default WelcomePage;

當然,請求以預期的內容結尾,並且Stuff組件可以正常工作。 我想念什么?

更新:我忘記提及此秘銀頁面位於我配置的反向代理之后。 就我離開代理服務器而言,該頁面有效,因此可能存在錯誤。 這是我的dockerized nginx:alpine default.conf文件:

server {
  listen       80;
  server_name  stuff.dev;

  #charset koi8-r;
  #access_log  /var/log/nginx/host.access.log  main;

  location / {
    root   /usr/share/nginx/html;
    index  index.html index.htm;
  }

  location /wfd {
    proxy_pass http://localhost:8080/;
  }
}

由於您可能只想更新組件的一個實例,而不是

WelcomePage.stufflist = result;

你可能想要

vnode.state.stufflist = result;

然后在您看來使用

vnode.state.stufflist.map(...)

注意:您可以使用this的isntead vnode.state如您未使用箭頭充當長。

嗯..問題是WelcomePage組件在主.js文件中呈現。 mithril.js doc 所述 ,如果您希望組件從auto-redraw系統中受益,則必須將其掛載。 因此,安裝我的WelcomePage解決了我的“問題”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM