Incluir arquivos e módulos externos em scripts
Importante
Uma descrição completa do Node.js, dos módulos e do require() A função está fora do escopo deste tutorial. Para saber mais, consulte a Documentação da Node.js.
Para utilizar arquivos e módulos em suas interações do mongosh
, utilize a função require().
Em seus scripts do mongosh
, você pode exigir:
Arquivos locais
Módulos Node.js integrados
External (npm) Node.js modules
Exigir um arquivo local
Você pode utilizar arquivos JavaScript em scripts do mongosh
sem qualquer configuração adicional.
Observação
mongosh
não executa arquivos importados com require()
. Em vez disso, o mongosh
adiciona tudo de um arquivo importado ao escopo de execução atual.
Exemplo
Para incluir um arquivo denominado test.js
localizado no diretório de trabalho atual, use um dos seguintes comandos:
require('./tests.js')
var tests = require('./tests.js')
Exigir um módulo integrado
Você pode exigir módulos Node.js integrados (como fs) no mongosh
sem nenhuma configuração extra.
Exemplo
O exemplo seguinte cria e executa um script que:
Conecta a uma implantação local em execução na porta padrão.
Preenche a coleção
myDatabase.employees
com dados de amostra.Utiliza o módulo
fs
para escrever um documento da coleçãomyDatabase.employees
para um arquivo denominadoemployee.json
.
Crie um arquivo denominado
employee-to-text-file.js
com o seguinte conteúdo:const fs = require('fs'); db = connect('mongodb://localhost/myDatabase'); db.employees.insertMany( [ { "name": "Alice", "department": "engineering" }, { "name": "Bob", "department": "sales" }, { "name": "Carol", "department": "finance" } ] ) const document = db.employees.findOne(); fs.writeFileSync('employee.json', JSON.stringify(document)); Para carregar e executar o arquivo
employee-to-text-file.js
, execute o seguinte comando domongosh
:load("employee-to-text-file.js") Para confirmar que os dados foram gravados no arquivo, abra o arquivo
employee.json
.
Exigir um módulo npm
Você pode exigir módulos .js nó (como os baixados do npm). Para usar módulos externos, você deve instalar os módulos:
Globalmente
No diretório
node_modules
em seu diretório de trabalho atual.
Existem dois padrões de embalagem para módulos Node.js.
Padrão de Embalagem | Funciona com require() |
---|---|
| Sim |
| No |
Não é possível require()
um módulo ES em mongosh
. Se você deseja usar a funcionalidade de um módulo ES, verifique se há uma versão CommonJS que você pode usar. Para mais informações, veja:
Dica
Você pode exigir módulos npm remotos usando esta construção:
const localRequire = require('module').createRequire(__filename);
Para ver um exemplo, consulte index.js no snippet resumetoken
.
Exemplo
Importante
Para executar este exemplo, você deve instalar o módulo date-fns globalmente ou no diretório node_modules
no diretório de trabalho atual.
O exemplo seguinte cria e executa um script que:
Conecta a uma implantação local em execução na porta padrão.
Preenche a coleção
myDatabase.cakeSales
com dados de amostra.Utiliza o módulo date-fns para formatar datas.
Crie um arquivo denominado
date-fns-formatting.js
com o seguinte conteúdo:const formatDistance = require('date-fns/formatDistance') db = connect('mongodb://localhost/myDatabase'); db.cakeSales.insertMany( [ { _id: 0, type: "chocolate", orderDate: new Date("2020-05-18T14:10:30Z"), state: "CA", price: 13, quantity: 120 }, { _id: 1, type: "chocolate", orderDate: new Date("2021-03-20T11:30:05Z"), state: "WA", price: 14, quantity: 140 }, { _id: 2, type: "vanilla", orderDate: new Date("2021-01-11T06:31:15Z"), state: "CA", price: 12, quantity: 145 }, { _id: 3, type: "vanilla", orderDate: new Date("2020-02-08T13:13:23Z"), state: "WA", price: 13, quantity: 104 }, { _id: 4, type: "strawberry", orderDate: new Date("2019-05-18T16:09:01Z"), state: "CA", price: 41, quantity: 162 }, { _id: 5, type: "strawberry", orderDate: new Date("2019-01-08T06:12:03Z"), state: "WA", price: 43, quantity: 134 } ] ) const saleDate0 = db.cakeSales.findOne( { _id: 0 } ).orderDate const saleDate1 = db.cakeSales.findOne( { _id: 1 } ).orderDate const saleDateDistance0 = formatDistance(saleDate0, new Date(), { addSuffix: true }) const saleDateDistance1 = formatDistance(saleDate1, new Date(), { addSuffix: true }) print("{ _id: 0 } orderDate was " + saleDateDistance0) print("{ _id: 1 } orderDate was " + saleDateDistance1) Para carregar e executar o arquivo
date-fns-formatting.js
, execute o seguinte comando domongosh
:load("date-fns-formatting.js") mongosh
produz algo como o seguinte:{ _id: 0 } orderDate was over 1 year ago { _id: 1 } orderDate was 7 months ago Sua saída pode variar dependendo da data em que você executar o exemplo.